Huawei MN - shawfdong/hyades GitHub Wiki
MN is the Management Node of the Huawei Universal Distributed Storage. It is a 2U Huawei Tecal RH2288 V2 server, equipped with 2x quad-core Intel Xeon E5-2609 CPUs (2.40GHz), 64 GB memory, and 2x 1TB SATA HDDs configured into a RAID-1 group (managed by an LSI SAS2208 RAID controller). There are 4x Gigabit Network Interfaces and 2x 10-Gigabit Network Interfaces:
# lspci | grep -i Ethernet 02:00.0 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01) 02:00.1 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01) 02:00.2 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01) 02:00.3 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01) 81:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit Network Connection (rev 01) 81:00.1 Ethernet controller: Intel Corporation 82599EB 10-Gigabit Network Connection (rev 01)
MN runs a heavily modified version of SUSE Linux Enterprise Server 11. MN was installed using the INU4Win software from a laptop, and was then used to install the rest of the Huawei Universal Distributed Storage.
The 4x Gigabit Network Interfaces are eth0 – eth3; and the 2x 10-Gigabit Network Interface are eth4 & eth5.
The 2x GbE NICs, eth0 & eth1, are bonded together into a channel bonding interface bondinstall:
# cat /etc/sysconfig/network/ifcfg-bondinstall BONDING_MASTER='yes' BONDING_MODULE_OPTS='mode=2 miimon=100' BONDING_SLAVE0='eth0' BONDING_SLAVE1='eth1' BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0 STARTMODE='auto' USERCONTROL='no'which was only used during the initial installation of MN using INU4Win; but otherwise serves no purpose in UDS's operation.
The 2x 10GbE NICs, eth4 & eth5, are bonded together into bond0:
# cat /etc/sysconfig/network/ifcfg-bond0 BONDING_MASTER='yes' BONDING_MODULE_OPTS='mode=2 miimon=100' BONDING_SLAVE0='eth4' BONDING_SLAVE1='eth5' BOOTPROTO=static IPADDR=172.16.0.11 NETMASK=255.255.255.0 STARTMODE='auto' USERCONTROL='no'
A VLAN interface vlan3076 is then created on bond0:
# cat /etc/sysconfig/network/ifcfg-vlan3076 BOOTPROTO='static' ETHERDEVICE='bond0' STARTMODE='auto' USERCONTROL='no'
A bridge interface br2 is then created on vlan3076:
# cat /etc/sysconfig/network/ifcfg-br2 BOOTPROTO='static' BRIDGE='yes' BRIDGE_FORWARDDELAY='0' BRIDGE_PORTS='vlan3076' BRIDGE_STP='off' IPADDR='172.16.6.2' NETMASK='255.255.255.0' STARTMODE='auto' USERCONTROL='no'
NOTE the setup (by Huawei) is unnecessarily convoluted! The bridge interface br2 is superfluous. One can simply assign an IP address to the VLAN interface vlan3076. See:
# man ifcfg-vlan
MN is the Management Node of xCAT (Extreme Cluster/Cloud Administration Toolkit), the toolkit for the deployment and administration of the Huawei Universal Distributed Storage. xCAT depends on the following services:
- Advanced TFTP server (atftpd)
- DHCP server
- PostgreSQL server
- NTP daemon
- xcatd
Apache HTTP server, which serves the HealthCheck report and the documentation for the HealthCheck tool (in /UDS/Tools/healthcheck/report) :
http://mn/hcheck/
vsftpd (very secure FTP daemon), presumably for installation of nodes via FTP
BitTorrent tracker, presumably to speed up the installation of the nodes
Ganglia Monitoring Daemon (gmond)
WatchDog (in /opt/galax/gcs/watchdog):
java -Ddecryptjar.path=/opt/galax/gcs/watchdog -Dclass.name=com.huawei.galax.gcs.watchdog.Main \ -classpath /usr/java/jdk1.6.0_24/jre/bin:/opt/galax/gcs/watchdog/lib/Galax-config.jar:/opt/galax/gcs/watchdog/lib/commons-lang-2.6.jar:/opt/galax/gcs/watchdog/lib/dom4j-1.6.1.jar:/opt/galax/gcs/watchdog/lib/galax-decrypt.jar:/opt/galax/gcs/watchdog/lib/init.jar:/opt/galax/gcs/watchdog/lib/jaxen-1.1.1.jar:/opt/galax/gcs/watchdog/lib/jfig-1.5.2.jar:/opt/galax/gcs/watchdog/lib/log4j-1.2.15.jar:/opt/galax/gcs/watchdog/lib/postgresql-8.3-605.jdbc4.jar:/opt/galax/gcs/watchdog/lib/slf4j-api-1.6.1.jar:/opt/galax/gcs/watchdog/lib/slf4j-log4j12-1.6.1-selffix.jar \ com.huawei.galax.gcs.encryption.decrypt.MainSystem
NOTE watchdog is started by the following line towards the end of /etc/init.d/rc:
sh /opt/galax/gcs/watchdog/watchdog.sh -checkand by both /etc/rc.d/rc3.d/S13watchdog and cron.
Cron also starts the following services (see /etc/crontab):
OMS agent (in /usr/galax/oms), which appears to be a Ganglia plugin.
ZooKeeper (in /opt/sod/zookeeper):
java -Dzookeeper.log.dir=/opt/sod/zookeeper \ -Dzookeeper.root.logger=INFO,ROLLINGFILE,SYSLOG \ -Djute.maxbuffer=10485760 -Dzookeeper.snapCount=300 \ -cp /opt/sod/zookeeper/build/classes:/opt/sod/zookeeper/build/lib/*.jar:/opt/sod/zookeeper/zookeeper-3.3.4.jar:/opt/sod/zookeeper/lib/zookeeper-check-1.0.jar:/opt/sod/zookeeper/lib/log4j-1.2.15.jar:/opt/sod/zookeeper/lib/jline-0.9.94.jar:/opt/sod/zookeeper/lib/commons-lang-2.6.jar:/opt/sod/zookeeper/lib/commons-collections-3.2.jar:/opt/sod/zookeeper/lib/commons-cli-1.1.jar:/opt/sod/zookeeper/lib/apache-rat-tasks-0.6.jar:/opt/sod/zookeeper/lib/apache-rat-core-0.6.jar:/opt/sod/zookeeper/src/java/lib/*.jar \ org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/sod/zookeeper/conf/zoo.cfg
Additional cron jobs are specified in /var/spool/cron/tabs/root.