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

【YashanDB认证】centos+arm环境安装过程问题复盘

原创 原创 2023-11-30
867

当前,YashanDB 个人版已正式向所有用户和开发者全面开放下载,我也在最快的时间进行了下载安装测试。但是在安装过程中却遇到了一些问题,下面对这些现象进行一个复盘。供大家参考。
本次安装使用安装包为:yashandb-personal-23.1.1.100-linux-aarch64.tar.gz
前期准备工作就不再赘述。在做完前边的配置工作后开始进行deploy操作。

[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
 type | uuid             | name               | hostid | index    | status  | return_code | progress | cost 
-----------------------------------------------------------------------------------------------------------
 task | 55c72e7bbc635de1 | DeployYasdbCluster | -      | yashandb | FAILED | 1           | 100      | 30   
------+------------------+--------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: start node with ping
stderr: wait node 1-1 process start failed: Starting instance nomount
failed to load dynamic library /data/yashan/yasdb_home/yashandb/23.1.1.100/plug-in/package/linux/libyspi_geometry.so, /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /data/yashan/yasdb_home/yashandb/23.1.1.100/lib/libgeos_c.so.1)
Failed to start instance

提示我gcc版本不够。
按照官方手册给出的最低配置信息来看我是满足的。

服务器准备
下表为个人开发环境最小配置,请根据如下配置自行调整软硬件配置。
项目 描述
操作系统 CentOS 7.6,kylin V10
CPU X86_64,ARM64
2C
内存 4G
硬盘 50G
文件系统 SSD
网络 千兆以太网,支持TCP和UDP链接

查询我的系统版本:

[root@host-16-0-0-23 om]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (AltArch)

CPU信息:

[root@host-16-0-0-23 om]# lscpu 
Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Model:                 0
BogoMIPS:              200.00
NUMA node0 CPU(s):     0-3
Flags:                 fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp

内存大小:

[root@host-16-0-0-23 om]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.9G        891M        3.9G         26M        3.1G        5.8G

磁盘大小:

[root@host-16-0-0-23 om]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0G     0  4.0G   0% /dev
tmpfs           4.0G     0  4.0G   0% /dev/shm
tmpfs           4.0G   27M  4.0G   1% /run
tmpfs           4.0G     0  4.0G   0% /sys/fs/cgroup
/dev/sda2        79G   13G   62G  18% /
/dev/sda1       200M  4.5M  196M   3% /boot/efi
tmpfs           809M     0  809M   0% /run/user/0

再次尝试也是同样报错。
查询我当前glibc版本

[root@host-16-0-0-23 yashan]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.17
GLIBCXX_DEBUG_MESSAGE_LENGTH

确实是没有要求的GLIBCXX_3.4.21这个。
那目前只能是着手升级了。
下载gcc相关源码进行安装。

wget http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
tar -xzvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites
./configure
make -j 4 
make install

期间输出在此略过。
安装完毕后检查glibc版本:

[root@host-16-0-0-23 ~]# strings /usr/local/lib64/libstdc++.so.6.0.21 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.17

已经包含所需版本。替换软连接:

cd /usr/lib64/
ln -sf /usr/local/lib64/libstdc++.so.6.0.21 libstdc++.so.6

再次尝试deploy:

[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
cluster: yashandb is alredy deployed, only support 1 cluster in yasom

此时提示我们已被deploy。
我们先尝试了启动环境,遇到了报错(没截图~大体就是数据文件不完整,原因应该就是deploy过程没有成功结束。),所以我们需要先清理掉当前环境重新进行deploy。

[root@host-16-0-0-23 yashan]#  ./bin/yasboot cluster clean -c yashandb 
Are you sure you want to CLEAN cluster: [yashandb], DATA PATH WILL BE SAVED
[yes/no]: yes
 type | uuid             | name              | hostid | index    | status  | return_code | progress | cost 
-----------------------------------------------------------------------------------------------------------
 task | 8748e73e1a24049b | CleanYasdbCluster | -      | yashandb | SUCCESS | 0           | 100      | 1    
------+------------------+-------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS

再次deploy。提示文件已存在。

[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
 type | uuid             | name               | hostid | index    | status | return_code | progress | cost 
-----------------------------------------------------------------------------------------------------------
 task | 0e94b8105cc0a76c | DeployYasdbCluster | -      | yashandb | FAILED | 1           | 100      | 2    
------+------------------+--------------------+--------+----------+--------+-------------+----------+------
task completed, status: FAILED
retcode: 1
stdout: gen node sys password
stderr: gen yaspwd failed, YASPW-00001 file '/data/yashan/yasdb_data/db-1-1/instance/yasdb.pwd' already exists

原因是clean过程不会清理数据目录,输入yes之前我们也可以看到相关提示“DATA PATH WILL BE SAVED”。
清理data并clean。

[root@host-16-0-0-23 yashan]# rm -rf /data/yashan/yasdb_data/db-1-1/
[root@host-16-0-0-23 yashan]#  ./bin/yasboot cluster clean -c yashandb 

重新deploy。

[root@host-16-0-0-23 yashan]# ./bin/yasboot cluster deploy -t yashandb.toml
 type | uuid             | name               | hostid | index    | status  | return_code | progress | cost 
------------------------------------------------------------------------------------------------------------
 task | 6909df8d7f0a7977 | DeployYasdbCluster | -      | yashandb | SUCCESS | 0           | 100      | 1218 
------+------------------+--------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS

从命令执行完回车开始至返回“task completed, status: SUCCESS”为止,共持续了28分钟,期间也看不到进度条之类的进度信息,让我一度以为是环境还是卡在了哪里。在技术群也咨询了下,让查询om目录下的日志文件。

[root@host-16-0-0-23 om]# cat yasboot.log 
2023-11-29 15:04:13 DEBUG  [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-29 15:15:11 DEBUG  [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 08:49:57 DEBUG  [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 08:52:34 DEBUG  [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419
2023-11-30 09:29:53 DEBUG  [yasboot] rpcclient.go:80 yashandb connecting om: 127.0.0.1:5419

也没有实质性内容。
当时对deploy进程进行了strace,可以看到进程是有在动,估计是我虚拟机环境还是比较慢。
最终检查状态。

[root@host-16-0-0-23 yashan]#  ./bin/yasboot cluster status -c yashandb 
 host_id  | node_type | nodeid | pid   
---------------------------------------
 host0001 | db        | 1-1:1  | 17025 
----------+-----------+--------+-------

至此算是在我的环境上成功启动的数据库实例,可以进行下一步的学习啦~
综合本次安装过程遇到的问题,有两个建议:
1.在官方手册中明确下glibc的最低版本,避免deploy的时候遇到version `GLIBCXX_3.4.21’ not found的问题。
2.deploy过程是否可以加一下进度条之类的进度信息,或者deploy过程的日志有更详细的输出,来判断deploy是否正常。不然这28分钟什么信息也看不到界面也没有什么变化,确实会造成一些不安情绪。
体验YashanDB,报名链接:https://www.yashandb.com/YCA_courses

最后修改时间:2024-08-28 11:26:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论