暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Glusterfs在银河麒麟v10上面的源码编译安装

济南小老虎 2024-07-30
313

背景

七月份的倒数第二周出差了.
出差之前花费了一个周末研究了一些软件.
没想到到了现场不是那么一回事儿.
客户现场用到了glusterfs. 然后性能不是很好.

还好自己多准备了一些资料, 并且出差的第一天进行了一些自学
不然就花了.
想着虽然验证了一些问题, 但是还是需要进行一些扩展性的工作,
比如整理一下用到的工具等.
学习和提高一下.


依赖项目

yum install autoconf automake bison dos2unix flex fuse-devel glib2-devel  \
libacl-devel libaio-devel libattr-devel libcurl-devel libibverbs-devel \
librdmacm-devel libtirpc-devel libuuid-devel libtool libxml2-devel \
lvm2-devel make openssl-devel pkgconfig xz-devel python3-devel \
python3-netifaces python3-paste-deploy python3-simplejson \
python3-sphinx python3-webob python3-pyxattr readline-devel rpm-build \
sqlite-devel systemtap-sdt-devel tar userspace-rcu-devel \
rpcgen liburing-devel google-perftools gperftools-devel libtirpc* -y

注意依赖的项目比较多.


编译与安装

wget https://codeload.github.com/gluster/glusterfs/tar.gz/refs/tags/v10.5 -O glusterfs10.5.tar.gz
tar -zxvf glusterfs10.5.tar.gz
cd glusterfs-10.5
./autogen.sh
./configure --disable-linux-io_uring --prefix=/usr/
time make
time make install
需要说明
make的时间较长, 飞腾5000C 上面需要 接近11min 才可以.
换用一个 x86的机器 CPU型号为:
make好事为 6min30s左右.
mount -t glusterfs node01:/gscloud gluster/test


创建服务

cat > usr/lib/systemd/system/glusterd.service <<EOF
[Unit]
Description=GlusterFS, a clustered file-system server
Documentation=man:glusterd(8)
StartLimitBurst=6
StartLimitIntervalSec=3600
Requires=
After=network.target
Before=network-online.target

[Service]
Type=forking
#Type=simple
PIDFile=/usr/var/run/glusterd.pid
LimitNOFILE=65536
ExecStart=/usr/sbin/glusterd -p usr/var/run/glusterd.pid
KillMode=process
TimeoutSec=300
SuccessExitStatus=15
Restart=on-abnormal
RestartSec=60
StartLimitBurst=6
StartLimitInterval=3600

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl restart glusterd
systemctl status glusterd


创建服务之二

发现自己编译的rpm包总是无法启动.
会提示错误如:
● glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: core-dump) since Mon 2024-07-29 14:21:42 CST; 170ms ago
Docs: man:glusterd(8)
Process: 3810454 ExecStart=/usr/sbin/glusterd -p usr/var/run/glusterd.pid (code=dumped, signal=SEGV)

但是使用二进制直接运行发现是可以的:
/usr/sbin/glusterd -p usr/var/run/glusterd.pid

这一块需要再研究一下.


挂载

glusterfs 其实有多种挂载方式
可以使用 native的方式挂载, 前提是必须安装了glusterfs相关的东西.
也可以使用 nfs方式挂载, 不需要安装客户端, 但是需要修改一下配置.
还可以使用samba的方式挂载, 但是需要修改安全级别, 所以不是特别建议.

这里挨个进行说明.
mkdir -p /glusterfs/data

mount -t glusterfs node01:/something /glusterfs/data


异常问题

启动失败:
glusterfs[3808632]: segfault at 3c8 ip 00007f421e48d176 sp 00007ffd69eca2b0 error 4 in libglusterfs.so.0.0.1[7f421e454000+ba000]

编译的方式还是不太行, 需要再验证一下.


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论