Contents
8.5. nfs+ keepalived高可用集群¶
8.5.1. 安装nfs¶
yum -y install nfs*
[root@bogon yum.repos.d]# mkdir /data
[root@bogon yum.repos.d]# cat /etc/exports
/data/ *(rw,no_root_squash,no_all_squash,sync)
[root@bogon yum.repos.d]# service nfs restart
#查看nfs共享的内容
[root@bogon yum.repos.d]# exportfs
/data <world>
#或者
[root@bogon ~]# showmount --exports
Export list for bogon:
/data *
8.5.2. NFS主备分别安装keepalived服务¶
cd /usr/src/
wget -c http://www.keepalived.org/software/keepalived-1.2.1.tar.gz
yum -y install libnl libnl-devel libnfnetlink libnfnetlink-devel popt-devel
tar -zxvf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1
./configure --prefix=/usr/local/keepalived --with-init=SYSV
make && make install
ln -s /usr/local/keepalived/etc/keepalived /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
chkconfig --add keepalived
chkconfig keepalived on
chkconfig --list | grep keepalived
8.5.3. keepalivd主配置文件详细内容¶
[root@nginx_keepalived_master sh]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #健康检查报告通知邮箱
}
notification_email_from keepalived@localhost #发送邮件的地址
smtp_server 127.0.0.1 #邮件服务器
smtp_connect_timeout 30
route_id LVS_DEVEL
}
vrrp_script chk_nfs
{
script "/data/sh/check_nfs.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 151
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nfs
}
virtual_ipaddress {
192.168.1.200/24
}
}
8.5.4. keepalivd备配置文件详细内容¶
[root@nginx_keepalived_backup keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #健康检查报告通知邮箱
}
notification_email_from keepalived@localhost #发送邮件的地址
smtp_server 127.0.0.1 #邮件服务器
smtp_connect_timeout 30
route_id LVS_DEVEL
}
vrrp_script chk_nfs
{
script "/data/sh/check_nfs.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 151
priority 90
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nfs
}
virtual_ipaddress {
192.168.1.200/24
}
}
8.5.5. check_nfs检测脚本¶
[root@nginx_keepalived_backup sh]# cat /data/sh/check_nfs.sh
#!/bin/sh
###检查nfs可用性:进程和是否能够挂载
/bin/systemctl status nfs-server.service &>/dev/null
if [ $? -ne 0 ];then
###如果服务状态不正常,先尝试重启服务
/sbin/service nfs restart
/sbin/service nfs status &>/dev/null
if [ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi
fi
8.5.6. 在备112机器上挂载VIP的nfs目录¶
[root@nginx_keepalived_backup keepalived]# mkdir /nfs_temp
[root@nginx_keepalived_backup keepalived]# mount -t nfs 192.168.1.200:/data/ /nfs_temp/
[root@nginx_keepalived_backup keepalived]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 98G 2.3G 96G 3% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 12K 488M 1% /dev/shm
tmpfs tmpfs 488M 7.6M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 xfs 509M 123M 386M 25% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.1.200:/data nfs4 98G 2.0G 96G 2% /nfs_temp
8.5.7. 在主111机器上挂载VIP的nfs目录¶
[root@nginx_keepalived_master sh]# mkdir /nfs_temp
[root@nginx_keepalived_master sh]# mount -t nfs 192.168.1.200:/data/ /nfs_temp/
[root@nginx_keepalived_master sh]#
[root@nginx_keepalived_master sh]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 98G 2.0G 96G 2% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 12K 488M 1% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 xfs 509M 123M 386M 25% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.1.200:/data nfs4 98G 2.3G 96G 3% /nfs_temp
模拟主机的nfs服务故障,不影响nfs的正常使用