-
Notifications
You must be signed in to change notification settings - Fork 173
Local_Disk_support_for_statelite
Table of Contents
{{: Design Warning}}
The nfs-based statelite has some shortages that some persistent files like the log need to be accessed continually with plenty of communication data which causing the nfs performance issue, and also that the growing of the temporary files in node will eat up the ram space. Then xCAT figures out a function that enable a local hard disk for the statelite node so that the unimportant log files and temporary files can be put on the local disk to reduce the using of nfs network bandwidth and reduce the using of ram space. Also, a swap space could be enabled base on the local disk to facilitate the applications.
Customer needs to manipulate two places to enable the local disk support.
Since the configuring of the local disk is a little complex, put it in a configuration file is a good choice. The configuration file is configured in the osimage attribute 'partitionfile' (linuximage.partitionfile).
The format of the configuration file:
enable=yes
enablepart=no
[disk]
dev=/dev/sdb
clear=yes
parts=100M-200M,1G-2G
[disk]
dev=/dev/sdc
clear=yes
parts=10,20,30
[disk]
dev=/dev/sda
clear=yes
parts=10,20,30
[localspace]
dev=/dev/sda1
fstype=ext3
[swapspace]
dev=/dev/sda2
There are two global attributes 'enable' and 'enablepart' to control the enable and disable of the total function.
- enable: This feature only works when 'enable' set to 'yes'. If set to 'no', nothing will be done.
- enablepart: The partition action (refer to [disk] section) will be done only when 'enablepart=yes'.
[disk] section is used to configure how to part a hard disk.
- dev: The path of the device file.
- clear: To specify that whether to clear all the existed partitions. 'yes' - to clear, otherwise do not clear.
- fstype: The fs type for the new created partition. 'ext3' is the default value if not setting.
- parts: The space range for the partition which will be created on the 'dev'. The valid format could be '<startpoint>-<endpoint>' or 'percentage of the disk'. So you could set it to '100M-10G' or '50'. If you set it to '50', that means 50% of the disk space will be assigned to partition which will be used for local space.
[localspace] section is used to specify which partition will be used as local storage for the statelite node.
- dev: The path of the partition file.
- fstype: The fs type on the partition which specified in 'dev'.
[swapspace]: section is used to configure the swap space for the statelite node.
- dev: The path of the partition file which will be used as the swap space.
To enable this function for the node base on a specific osimage, create the configuration file and set the path to the partitionfile for the osimage like following:
chdef -t osimage partitionfile=/tmp/cfglocaldisk
For the files that customer would like to store it in the local disk, add an entry like following in the litefile table: (localdisk is the option to specify that this file or directory should be put in the local disk.)
"ALL","/tmp/","localdisk",,
The code logic in the script:
Send a request command 'getpartition' to xcatd to get the partition configuration
Parse the arguments which returned by 'getpartition' request
If 'enable != yes', return directly
If 'enablepart != yes', skip the partition section in [disk].
To part a disk which specified in [disk]:
Go through the partition information of the target disk which specified in 'dev'
if 'clear=yes', remove the current partition
else record the existed partitions
Calculate the 'start' and 'end' points for the partition if 'xxxxspace=percentage'
Create partition on the target disk. And format the partition to the file system type which specified in 'fstype' parameter.
If having [localspace], mount the partition 'dev' to /.sllocal
If having [swapspace], create the swap space against 'dev' and enable it.
Inside the 'getparition.pm' plugin, it will read the configuration file from linuximage.partitionfile and parse it, then generate a parameter list and send it to node.
And add the entry in policy table to permit the running of this command from node:
chtab priority=7.1 policy.commands=getpartition policy.rule=allow
There are several binaries need to be injected to the initrd so that the partition script could be run.
parted mke2fs bc swapon swapoff chmod
The partition script 'localdisk' will be run before the running of 'rc.statelite' which is using to configure the lite files.
Add changes in the 'rc.statelite' to support the option 'localdisk'. If the 'option=localdisk', mount the original file to the one in the /.sllocal
1. The partition configuration setting only can be set in osimage level.
- Nov 13, 2024: xCAT 2.17 released.
- Mar 08, 2023: xCAT 2.16.5 released.
- Jun 20, 2022: xCAT 2.16.4 released.
- Nov 17, 2021: xCAT 2.16.3 released.
- May 25, 2021: xCAT 2.16.2 released.
- Nov 06, 2020: xCAT 2.16.1 released.
- Jun 17, 2020: xCAT 2.16 released.
- Mar 06, 2020: xCAT 2.15.1 released.
- Nov 11, 2019: xCAT 2.15 released.
- Mar 29, 2019: xCAT 2.14.6 released.
- Dec 07, 2018: xCAT 2.14.5 released.
- Oct 19, 2018: xCAT 2.14.4 released.
- Aug 24, 2018: xCAT 2.14.3 released.
- Jul 13, 2018: xCAT 2.14.2 released.
- Jun 01, 2018: xCAT 2.14.1 released.
- Apr 20, 2018: xCAT 2.14 released.
- Mar 14, 2018: xCAT 2.13.11 released.
- Jan 26, 2018: xCAT 2.13.10 released.
- Dec 18, 2017: xCAT 2.13.9 released.
- Nov 03, 2017: xCAT 2.13.8 released.
- Sep 22, 2017: xCAT 2.13.7 released.
- Aug 10, 2017: xCAT 2.13.6 released.
- Jun 30, 2017: xCAT 2.13.5 released.
- May 19, 2017: xCAT 2.13.4 released.
- Apr 14, 2017: xCAT 2.13.3 released.
- Feb 24, 2017: xCAT 2.13.2 released.
- Jan 13, 2017: xCAT 2.13.1 released.
- Dec 09, 2016: xCAT 2.13 released.
- Dec 06, 2016: xCAT 2.9.4 (AIX only) released.
- Nov 11, 2016: xCAT 2.12.4 released.
- Sep 30, 2016: xCAT 2.12.3 released.
- Aug 19, 2016: xCAT 2.12.2 released.
- Jul 08, 2016: xCAT 2.12.1 released.
- May 20, 2016: xCAT 2.12 released.
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT OS And Hw Support Matrix
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
- Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2 can now be purchased!
- June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
- May 30, 2008: xCAT 2.0 for Linux officially released!
- Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
- Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.