写作不易,转载请注明出处:
http://blog.csdn.net/wbin233/article/details/81156068 ,谢谢。
环境
- 机器系统版本:debian9.5 【
more /etc/debian_version
】 - gluster版本:glusterfs 4.1.1【
glusterfs --version
】 - VMware® Workstation 14 Pro: 14.1.1 build-7528167
- 服务端:fk1 192.168.48.160
- 服务端:fk2 192.168.48.161
- 客户端:fk3 192.168.48.162
- 网关:192.168.48.2
- 掩码:255.255.255.0
查看ip
ip addr show
修改ip:
-
vi /etc/network/interface
auto eth0 #开机自动连接网络
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static #static表示使用固定ip,dhcp表述使用动态ip
address 192.168.48.160 #设置ip地址
netmask 255.255.255.0 #设置子网掩码
gateway 192.168.48.2 #设置网关
broadcase 192.168.48.255#设置广播地址(也可以不写) service networking restart
-
ifup eth0
(具体看实际名)
修改host名
vi /etc/hostname
添加host与ip的映射
对所有机器: vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 fk1
192.168.48.160 fk1
192.168.48.161 fk2
192.168.48.162 fk3
配置允许ssh连接
默认不允许root用户登录,因此作以下修改: vi /etc/ssh/sshd_config
将
PermitRootLogin prohibit-password
修改为
PermitRootLogin yes
额外添加新磁盘
对两台服务端:
-》虚拟机设置 -》硬件 -》硬盘 -》添加 即可。
安装mkfs.xfs
对两台服务端:
对硬盘进行格式化: mkfs.xfs /dev/sdb
系统显示:
mkfs.xfs error:
command not found.
可能是系统不完全安装
运行 which mkfs 查看mkfs的命令目录
which mkfs
/sbin/mkfs
查看目录 ls -la /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.bfs /sbin/mkfs.cramfs /sbin/mkfs.ext2 /sbin/mkfs.ext3 /sbin/mkfs.ext4 /sbin/mkfs.minix
发现没有 mkfs.xfs
需要安装 xfsprogs rpm包
apt-get -y install xfsprogs
就ok了
挂载磁盘
对两台服务端: mkfs.xfs -i size=512 /dev/sdb1
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
mount -a && mount
设置GlusterFS服务器
对两台服务端:
1. 添加gluster.org Debian资源库的公钥 wget -O -https://download.gluster.org/pub/gluster/glusterfs/4.1/rsa.pub | apt-key add -
2. 添加GlusterFS库 echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/jessie/amd64/apt jessie main > /etc/apt/sources.list.d/gluster.list
或者 echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/stretch/amd64/apt stretch main > /etc/apt/sources.list.d/gluster.list
又或者 echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.list
3. 更新存储库列表 apt-get update
可能显示
正在读取软件包列表… 完成
E: 无法找到获取软件包的渠道 /usr/lib/apt/methods/https 所需的驱动程序。
N: 请检查是否安装了 apt-transport-https 软件包
则根据提示安装: apt-get install apt-transport-https
4. 安装gluster服务端 apt-get -y install glusterfs-server
5. 启动glusterd服务 service glusterd start
或 /etc/init.d/glusterd start
service glusterd status
查看版本:glusterfsd --version
6. 配置防火墙 iptables -I INPUT -p all -s <ip-address> -j ACCEPT
ip-address填其他几部机器ip
配置trusted pool
选择某一台服务端主机,比如fk1,执行 gluster peer probe fk2
通过执行以下命令,可以看到池里除了自己以外的主机: gluster peer status
创建卷
两台服务端,创建卷的挂载点 mkdir -p /data/brick1/gv0
创建卷 gluster volume create gv0 replica 2 fk1:/data/brick1/gv0 fk2:/data/brick1/gv0
打开卷: gluster volume start gv0
查看卷状态 gluster volume info
gluster volume status
gluster volume list
如果创建卷过程中失败了,查看日志 more /var/log/glusterfs/glusterd.log
默认情况下,所有客户端都可以访问到卷,也可以另外配置访问权限: gluster volume set gv0 auth.allow <ip-address>
其中 ip-address 可以使用通配符*,以及多个ip可以用逗号隔开。
简单的客户端测试
取其中任一服务端如fk1当客户端使用,将客户端挂载在/mnt目录,然后在该目录下生成多个文件。 mount -t glusterfs fk1:/gv0 /mnt
for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
检查客户端挂载点: ls -lA /mnt/copy* | wc -l
返回100
在任意服务端主机检查卷挂载点: ls -lA /data/brick1/gv0/copy*
也返回100(由于只有两台主机且有副本)
测试成功。
在另一台主机上创建gluster客户端
- 添加gluster.org Debian资源库的公钥
wget -O -https://download.gluster.org/pub/gluster/glusterfs/4.1/rsa.pub | apt-key add -
- 添加GlusterFS库
echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/jessie/amd64/apt jessie main > /etc/apt/sources.list.d/gluster.list
或者echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/stretch/amd64/apt stretch main > /etc/apt/sources.list.d/gluster.list
又或者echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/4.1/LATEST/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.list
更新存储库列表
apt-get update
可能显示
正在读取软件包列表… 完成
E: 无法找到获取软件包的渠道 /usr/lib/apt/methods/https 所需的驱动程序。
N: 请检查是否安装了 apt-transport-https 软件包
则根据提示安装:apt-get install apt-transport-https
安装gluster客户端
apt-get -y install glusterfs-client
创建挂载目录
mkdir -pv /mnt/glusterfs
挂载到/mnt/glusterfs
mount.glusterfs fk3:/gv0 /mnt/glusterfs
通过mount
和df -h
查看挂载情况
然后就可以进行操作了。
测试glusterfs
- 在客户端fk3挂载点上建几个文件
touch /mnt/glusterfs/test1
touch /mnt/glusterfs/test2
- 在任意服务端如fk2的挂载点上查看
ls /data/brick1/gv0
test1 test2 - 让其中一台服务端如fk1掉线,然后在客户端fk3进行一些操作
服务端fk1:shutdown now
客户端fk3:touch /mnt/glusterfs/test3
rm -f /mnt/glusterfs/test2
- 在服务端fk2能看到文件实时更改了
ls /data/brick1/gv0
test1 test3 - 重启服务端fk1,能看到fk1上文件自动同步更改。
ls /data/brick1/gv0
test1 test3 - 以上,测试成功~