This chapter explains High Availability feature supported by QueryIO. Various aspects of high availability explained are:
High Availability(HA) feature of QueryIO will make sure that QueryIO agent service on host is always available. To make it possible, in every two minutes(configurable), host checks itself whether the QueryIO agent process is up or not and if it is down, then host will start QueryIO agent process on itself. This is made possible through crontab, which is a time-based job scheduler in Unix-like computer operating systems.
HDFS has always had a well-known single point of failure which impacts HDFS' availability: The system relies on a single NameNode to coordinate access to the file system data and if NameNode is down, then the whole cluster is unavailable. Hadoop introduced its own High Availability feature to ease this problem. The HA-Enabled cluster comprises of two redundant NameNodes, one is in Active state and the other is in StandBy state. These two nodes access a shared directory(example: NFS Mounted disk) to synchronize their FileSystem Image through Audit Logs. Now the single point of failure is reduced to availability of this shared directory. This feature provides a hot-standby between these two nodes and in case of failure, manual failover can be performed through QueryIO UI to switch states between these nodes.
NameNode federation does not support HA feature. There must be single active NameNode in the cluster for HA feature to work.
For HA feature to use QJM, Add Standby NameNode with QJM configured.
For High availability, Standby NameNode needs to be synchronized with active NameNode, so both NameNodes communicate with each other through Journal Node.
When any namespace modification is performed by the Active node, it durably logs a record of the modification to a majority of these JNs.
Standby NameNode constantly monitors edit logs at journal nodes and updates its namespace accordingly.
In the event of failover, standby NameNode will ensure that its namespace is completely updated according to edit logs before it is changes to Active state.
Thus namespace is fully synchronized before a failover.
Click on FailOver to initiate HA feature.
For HA feature to use QJM, Add Standby NameNode with NFS mount configured.
Use following guidelines to configure HA feature:
Both the NFS server and NFS client must have parts of the NFS package installed and running. NFS is installed by default, and also by default NFS is activated when the system boots. If you want to install NFS package manually, use following command:
# vi /etc/exports /data *(rw,sync)
# chkconfig --level 35 nfs on # chkconfig --level 35 nfslock on # chkconfig --level 35 rpcbind on
# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100024 1 udp 59471 status 100024 1 tcp 14485 status 100011 1 udp 875 rquotad 100005 1 udp 20780 mountd 100005 1 tcp 57275 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100021 1 udp 54505 nlockmgr 100021 3 udp 54505 nlockmgr
# chkconfig --level 35 netfs on # chkconfig --level 35 nfslock on # chkconfig --level 35 rpcbind on
# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100024 1 udp 59471 status 100024 1 tcp 14485 status 100011 1 udp 875 rquotad 100005 1 udp 20780 mountd 100005 1 tcp 57275 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100021 1 udp 54505 nlockmgr 100021 3 udp 54505 nlockmgr
# mkdir /mnt/nfs # mount -t nfs <NFSServer>:<directory> <mount point directory>
mount -t nfs 192.168.0.1:/data /mnt/nfs