GeXiangDong

精通Java、SQL、Spring的拼写,擅长Linux、Windows的开关机

0%

GlusterFS同步文件

glusterfs可以用来给同步两台机器(或更多)做文件镜像,而且是所有节点都在线可用得实时热备份。

安装

1
apt-get install glusterfs-server

即可完成安装,也有glusterfs-client可用。

配置Gluster节点

先在2个机器的hosts文件里加入类似的域名指向,以便后面使用
【以下方案仅限于2台主机同步,3台不可行】

1
2
192.168.1.10  node1
192.168.1.11 node2

注意:文件里不要有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
2
gluster volume create gv0 replica 2 node1:/home/gluster-test node2:/home/gluster-test force
gluster volume start gv0

注意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
2
3
setfattr -x trusted.glusterfs.volume-id /home/gluster-test
setfattr -x trusted.gfid /home/gluster-test
rm -rf /home/gluster-test/.glusterfs

如果没有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/