ISCSI解决多个客户端访问数据服务器的通信问题,OCFS2解决数据的同步问题
iscsi的安装见ubuntu(服务端)+windows(客户端)搭建iscsi,USB接入的磁盘一般是sdb,共享路径改为/dev/sdb
其中target机器安装iscsi的服务端,另两台node机器安装iscsi的客户端(initiator),安装完后两个客户端连接共享磁盘
OCFS2的安装主要参考OCFS2 + ISCSI Centralized storage in Ubuntu 10.10:
step1.
sudo apt-get install ocfs2-tools
3台机器都需要安装
安装ocfs2-tools就可以了,原文的ocfs2会提示没这个包此外之所以用ocfs2而不用gfs,是因为ubuntu 14.04没有gfs的安装包(ubuntu 12.04应该可以)
据文章Ubuntu 12.04配置GFS2,ocfs2测试性能要好于gfs。。。
step2:
sudo touch /etc/ocfs2/cluster.conf3台机器都需要新建一个ocfs2的配置文件,然后填写:
node: ip_port=7777 ip_address=192.168.134.140 number=0 name=target cluster=ocfs2 node: ip_port=7777 ip_address=192.168.134.144 number=1 name=node1 cluster=ocfs2 node: ip_port=7777 ip_address=192.168.134.20 number=2 name=node2 cluster=ocfs2 cluster: node_count=3 name=ocfs2确保3台机器的内容一致,其中特别要注意的是name,需要与相应机器的hostname一致,它是可以改的:
sudo vi /etc/hostname
step3:
启动ocfs2和o2cb服务
sudo /etc/init.d/o2cb enable sudo /etc/init.d/ocfs2 start如果cluster.conf写错,会在o2cb时报错,一般是name的问题
step4:
将共享磁盘重新分区
sudo fdisk /dev/sdb会有参数提示,这里参考文章Ubuntu下分区格式化U盘(fdisk&&mkfs),先按d删除分区,再按n添加新分区,其他都填默认值
step5:
将共享磁盘格式化为ocfs2
sudo mkfs.ocfs2 -b 4k -C 32k -N 4 -L cluster-storage /dev/sdb1-b和-C分别为块大小和群集单元大小;b支持512字节到4k,4k是推荐大小,几乎适合所有磁盘大小;c支持4k到1M,对大文件,128k比较适合
-N 4为节点数+1,这里共3台机器,取4
-L 为格式化后磁盘的名字
格式化时可能会因为磁盘已挂载而报错,先umount一下再格式化
sudo umount /dev/sdb1
step4和step5都在target机器上完成
step6:
在两台客户机上挂载共享磁盘到指定目录
sudo mkdir /shareData sudo mount -t ocfs2 /dev/sdb1 /shareData确保所有客户机的指定目录相同
搞定!
可以在两台客户机上测试修改文件,内容能同步
P.S 之前的一次测试使用2台机器,不在一个网段,结果target机器隔一会就重启,然后估计客户机因为失去连接,也接着重启。不知道是不是因为网段的问题。。。