关于ubuntu server 18 上部署glusterfs和heketi的文章网上有很多了,看起来都很顺利,但是我在部署的时候偏偏遇到了很多的问题, 记录一下。
环境:Ubuntu Server 18.04
glusterfs-3.13
heketi-v9
heketi-client-v9
1、使用sudo apt-get install glusterfs-server 安装成功但是启动失败
关于这个问题我也是醉了,使用了ubuntu server 18自带源的3.13版本和官方的3.12的版本,均是正常安装但是无法启动,最后按下面的方法安装的官方的3.13
qulin@ubuntu-kubeadm-glusterfs-02-renew:~$ sudo apt install software-properties-common -y qulin@ubuntu-kubeadm-glusterfs-02-renew:~$ sudo wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.13/rsa.pub | sudo apt-key add - qulin@ubuntu-kubeadm-glusterfs-02-renew:~$ sudo add-apt-repository ppa:gluster/glusterfs-3.13 qulin@ubuntu-kubeadm-glusterfs-02-renew:~$ sudo apt install glusterfs-server -y
2、关于heketi的mock模式
人家注释里只说了mock模式用于开发,也可以正常创建volume,但是没说创建的volume不可以挂载.....我是查了资料才知道的,正常使用的模式是另外两个
3、关于节点的硬盘
heketi里的topology-sample.json可以定义使用的磁盘,也就是说使用glusterfs-server的服务至少两块硬盘,一块给系统,一块给存储,且存储的硬盘必须是原生的,没有文件系统的那种
4、使用heketi-cli命令创建volume卡在命令行,然后heketi的日志里拼命的刷vg_**********找不到、文件目录不存在、找不到挂载点
创建volume命令回车之后直接卡在命令行差不多有半分钟后弹出个
Error: WARNING: This metadata update is NOT backed up. /usr/sbin/thin_check: execvp failed: No such file or directory WARNING: Integrity check of metadata for pool vg_e0fde12f7162d14b98a56faa11ec6e82/tp_c81f90a756749f14abbbb9e536144771 failed. /usr/sbin/thin_check: execvp failed: No such file or directory Check of pool vg_e0fde12f7162d14b98a56faa11ec6e82/tp_c81f90a756749f14abbbb9e536144771 failed (status:2). Manual repair required! Failed to activate thin pool vg_e0fde12f7162d14b98a56faa11ec6e82/tp_c81f90a756749f14abbbb9e536144771. Removal of pool metadata spare logical volume vg_e0fde12f7162d14b98a56faa11ec6e82/lvol0_pmspare disables automatic recovery attempts after damage to a thin or cache pool. Proceed? [y/n]: [n] Logical volume vg_e0fde12f7162d14b98a56faa11ec6e82/lvol0_pmspare not removed.
此前我一度ctrl+C导致我没有看到这个错误,走了不少弯路,这个问题解决办法非常简单,在glusterfs集群的所有节点上安装以下软件就可以了
root@ubuntu-kubeadm-glusterfs-01-renew:~/heketi-client/share/heketi# apt install thin-provisioning-tools
5、heketi.json的配置
端口那里一定要写ssh的端口号,虽然它原来r的内容大大方方写的是默认22,结果一运行就说too many colons......
rsa的文件不要放在/root目录下,因为权限问题一般人都无法访问的亲,可以放在比如/etc/heketi/的目录下,变更下权限
手动创建/var/lib/heketi....这个我已经无力吐糟了..........