glusterfs可以用来给同步两台机器(或更多)做文件镜像,而且是所有节点都在线可用得实时热备份。
安装
1 | apt-get install glusterfs-server |
即可完成安装,也有glusterfs-client可用。
配置Gluster节点
先在2个机器的hosts文件里加入类似的域名指向,以便后面使用
【以下方案仅限于2台主机同步,3台不可行】
1 | 192.168.1.10 node1 |
注意:文件里不要有127.0.0.1 node1这样的行(如果node1和机器名重名会出现此现象)
在node1上运行
1 | gluster peer probe node2 |
在node2上运行
1 | gluster peer probe node1 |
之后可以使用下面的命令查看状态
1 | gluster peer status |
配置镜像的卷
实际使用中应该用一个单独的逻辑分区,此处仅仅是使用了一个目录
在两个机器上都分别运行下面命令创建一个目录。(不要使用已经存在的目录)
1 | mkdir /home/gluster-test |
然后在任意一台机器上运行
1 | gluster volume create gv0 replica 2 node1:/home/gluster-test node2:/home/gluster-test force |
注意force是因为使用root用户创建,gluster建议不用root创建。命令在任意一个机器上运行后,另外一个机器会自动同步。
如果出现
volume create: gv0: failed: /home/gluster-test or a prefix of it is already part of a volume
或类似的错误信息,可以用如下命令删除文件后,重新再运行 gluster volume create
1 | setfattr -x trusted.glusterfs.volume-id /home/gluster-test |
如果没有setfattr,可以通过 apt-get install attr
来安装。
可以使用 gluster volume info
查看上述卷状态。
注意:卷创建成功后,不要去修改/home/gluster-test目录下地任何文件、目录等(如果是单独分区,不mount最好)
挂载gluster的卷
在需要使用文件的机器上执行:
1 | mount -t glusterfs node1:/gv0 /mnt |
此命令会把上一步骤创建的卷挂载到/mnt目录下,以后可以访问/mnt目录,读写文件。文件会自动同步到node1,node2的节点。
如果不需要访问,只供备份的节点可以不用此步骤。
在/etc/fstab文件里加入如下行,可以避免每次启动都要手工mount,可自动mount
1 | node1:/gv0 /web glusterfs defaults,nobootwait,_netdev 0 0 |
注意一共6部分,空格区分,每部分之间不要有空格
参考
http://gluster.readthedocs.org/en/latest/Quick-Start-Guide/Quickstart/