-
Notifications
You must be signed in to change notification settings - Fork 173
use fifo pipe to enhance getadapter
This is a doc describing what need to do to enhance the getadapter.
Currently, getadapter
includes getadapter
and findadapter
command. findadapter
is a command only used in genesis.
getadapter
fork process to handle the client request, we can call it client process. When the genesis is running , CN node will send the nics information wighin the 'findadapter' request.
For the findadapter
request, xcatd will also fork plugin process for every node, then update the nics files for every node.The client process is running in a loop to scan these files which is updated by the findadapter
command every 60 seconds.
This model is heavy and configurenics
feature suppose the nics information is in the nics table.
A new table called taskstate
which contains the following columns should be added to record the request state:
taskstate Table column
node: primary key
command: command request is running on the node, currently only `getadapter` is supported
state: request state of the command for the node. `getadapter` only use 'waiting' state to support callback request.
pid: the `immediatech` process id of the request. `immediatech` is forked by xcatd listerner and it is also the parent process of the plugin process.
reserve: a column which can be used to lock the request for a node in the future, not used by `getadapter` now
disable: xcat table always has this column
nicsadapter : save multiple nics infomation like mac, pci slot, nicname, linkstate etc information in this column.
Format Example:
enp12s0f1!pci=/pci0000:00/0000:00:01.0/0000:0c:00.1 mac=34:40:b5:be:6a:84 linkstate=DOWN,enp0s29u1u1u5!pci=/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1.5/2-1.1.5:1.0 mac=36:40:b5:bf:44:33 linkstate=UP
Add <action>update</action>
in request xml when the getadapter request is from genesis.
If no action description or the description is <action>inspect</action>
, this request will be looked as a new request (not callback)
When the callback request arrived, there is no need to fork plugin processes for every node. This hook will route the request information to fork a plugin process for a new request , or send the request information which contains the nics information to the right process waiting for a callback reqeust.
getadapter <noderange> [-f]
no option: If no adapter information for the node, inspect it.
-f : Already has information for the node, maybe nics hardware is updated, inspect it again
As getadapter already has request state, there is no need to add findadapter any more.
Example: ( just example , in the real genesis environment, no virtual bridge or virtual ethernet )
Node c910f05c01bc02:[0]->br-eno1!mac=34:40:b5:be:6a:80|pci=/virtual|linkstate=UP
Node c910f05c01bc02:[1]->br-enp12s0f1!mac=34:40:b5:be:6a:84|pci=/virtual|linkstate=DOWN
Node c910f05c01bc02:[2]->eno1!mac=34:40:b5:be:6a:80|pci=/pci0000:00/0000:00:01.0/0000:0c:00.0|candidatename=eno1/enp12s0f0/enx3440b5be6a80|vendor=Emulex Corporation|model=OneConnect 10Gb NIC (be3)|linkstate=UP
Node c910f05c01bc03:[0]->br-eno1!mac=34:40:b5:be:6a:80|pci=/virtual|linkstate=UP
Node c910f05c01bc03:[1]->br-enp12s0f1!mac=34:40:b5:be:6a:84|pci=/virtual|linkstate=DOWN
(1) The pipe file is located at the directory of GET_ADPATER_DIR => /var/run/getadapter
.
(2) The pipe file name is the 'immediatech' process id.
(3) When the nodes are deploying and booting genesis, fifo pipe is created and wait for the nics information, if all of the information is retrieved, return success. If waiting time is more than ALARM_TIMEOUT => 1800
(30 minutes), alarm signal handler is used to terminate the getadapter
process.
- 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.