sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --reload
为Cluster所有节点设置NFS在所有的Cluster节点机器上执行如下命令,确保能访问NFS共享磁盘:
a) 安装NFS软件包:
sudo yum -y install nfs-utils
b) 防火墙中允许相关服务通信:
sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --reload
c) 确认是否可以看到NFS共享:
sudo showmount -e **<IP OF NFS SERVER>**
更多关于NFS的文档资源参考以下站点:
设置数据库文件路径为共享磁盘转移数据库文件到共享磁盘上:
a) 在Primary节点上先把数据库文件保存到临时路径/var/opt/mssql/tmp下,
su mssql mkdir /var/opt/mssql/tmp cp /var/opt/mssql/data/* /var/opt/mssql/tmp rm /var/opt/mssql/data/* exit
b) 在所有节点上编辑/etc/fstab文件,保证重启系统后自动挂载NFS共享磁盘:
<IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr
例子如下:
Note(摘自微软):
关于如何配置Fencing,请参考How To Configure VMware fencing using fence_vmware_soap in RHEL High Availability Add On(RHEL Pacemaker中配置STONITH)。
c) 挂载刚刚配置的NFS存储:
sudo mount -a
可以执行mount命令检测是否已经成功挂载:
d) 在Primary节点上把临时路径下的数据库文件复制到新挂载的路径下,并保证mssql这个本地用户有��写权限:
chown mssql /var/opt/mssql/data chgrp mssql /var/opt/mssql/data su mssql cp /var/opt/mssql/tmp/* /var/opt/mssql/data/ rm /var/opt/mssql/tmp/* exit
e) 在Primary节点上开启SQL Server服务验证是否成功,这时SQL Server已经使用NFS服务器上的共享磁盘了:
sudo systemctl start mssql-server sudo systemctl status mssql-server sudo systemctl stop mssql-server
f) 在其它非Primary节点上依次开启SQL Server服务验证是否成功。
Note:目前所有节点的SQL Server都使用这个NFS服务器共享磁盘了,根据微软推荐,为了防止冲突,需要使用一个File System Cluster资源来防止一个共享路径被挂载多次。