基于openEuler的openGauss实验环境建设实践探析

2023-07-26 09:13林美蓉
电脑知识与技术 2023年16期
关键词:编辑器开源命令

林美蓉

(海南科技职业大学,海南 海口 571126)

0 引言

国产操作系统和数据库进一步做大做强,生态建设至关重要。开源对于覆盖更多的用户、吸纳更多的技术优势有很大的帮助。openEuler(欧拉开源操作系统,简称欧拉)和openGauss(高斯开源数据库,简称高斯)都是我国基础软件领域的开源共建产品,聚焦基础软件核心能力构建,引领基础软件持续创新[1]。openEuler 是一个开源免费的Linux 发行版系统,源于Linux Kernel 上游社区,是我国的开源操作系统根社区,通过开源协作社区创新平台,支持服务器、云计算、边缘计算、嵌入式等全应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统,方便开发者和运维人员简单、平稳高效地进行操作系统迁移和智能运维[2]。openGauss 是我国的开源关系型企业级数据库,是GaussDB 云数据库服务的开源版本,其内核深度融合华为在数据库领域多年的经验,是结合企业级场景的高安全性、高可用性数据库。目前已在金融、制造等多行业核心系统广泛应用[3]。本文将基于openEuler 国产开源操作系统进行openGauss 国产开源关系型数据库的单节点实验环境建设,助力高校学生全面掌握开源操作系统的管理和运维以及更好的学习和使用开源数据库。

1 openEuler环境准备

1.1 基于虚拟机的openEuler安装

openEuler 的下载地址是openEuler 的开源社区https://www.openeuler.org/zh/download/,选择对应平台的最新版本,目前的最新版本是openEuler22.09,本文使用的是x86_64 架构的基础安装ISO,openEuler-22.09-x86_64-dvd.iso,是包含了运行最小系统的核心组件的镜像文件。如果需要全量软件包需要下载openEuler-22.09-everything-x86_64-dvd.iso,该ISO 文件包含运行系统所需要的所有组件。安装过程可以参考openEuler 的官方文档和openEuler 的技术白皮书。安装过程类似Redhat 或CentOS 等Linux 内核操作系统。需要注意事项:一是需要开启宿主机的CPU虚拟化功能,确保CPU虚拟化功能处于“已启用”的状态。二是满足最小的虚拟化硬件需求。如内存不小于2G,硬盘不小于32G等空间和平台兼容性要求。三是建议选择英文,因为后续openGauss 数据库的安装目前只支持英文方式。四是软件安装方式选择为“服务器”。五是需要满足root的用户密码复杂度要求,不能太简单或太有规律,必须能够通过openEuler 的字典校验。六是普通用户创建时密码的设置不能和root用户相同。openEuler目前暂未支持图形化界面,因此openEuler 安装完成重启后,进入的是命令行模式,通过cat /etc/os-release 查看openEuler 操作系统的相关系统信息[4]。

1.2 网络环境准备

openEuler提供多种网络配置的方式,本文采用的是虚拟机的NAT 网络模式。先查看虚拟网络编辑器确定NAT网络的网段和网关,然后通过vim编辑器修改ifcfg 文件的方式配置静态网络。在root 用户权限下,修改/etc/sysconfig/network-scripts/目录下的ifcfgens160 文件,将BOOTPROTO 值由默认的dhcp 改为none,并根据需求添加IP 地址、网关和DNS 首选地址等参数,具体设置方式如图1所示。

图1 网络环境准备

ifcfg 文件修改完成后,保存退出。需要执行nmcli conn reload;nmcli conn up ens160 命令重新加载配置文件,重新激活网卡连接,网络配置才能生效。

1.3 软件准备

1.3.1 软件源准备

因为后续openGauss 的安装有软件依赖的需求,而且依赖的软件官方推荐使用openEuler 操作系统安装光盘的默认安装包,因此需要配置好openEuler 的本地软件源。将ISO文件导入openEuler的光驱中,使用mount /dev/cdrom /mnt 命令挂载到本地,使用dnf config-manager-add-repo file:///mnt 命令将挂载的镜像添加为本地软件源,使用vim 编辑器编辑/etc/yum.repo.d/目录下的mnt.repo 文件,增加gpcheck=1 和gpgkey=file:///mnt/RPM-GPG-KEY-openEuler 两行,保存并退出。可以通过dnf repolist 命令验证查看,发现mnt已经在软件源列表中,如图2所示。

图2 软件源准备

1.3.2 openGauss依赖软件安装

openGauss 所需的软件有:libaio-deve,flex,bison,ncurses-devel,glibc-devel,patch lsb_release,readlinedevle,libnsl,前期已经做好的软件源的相关准备工作,可以使用dnf install -y命令进行依赖软件的安装。默认情况下,openEuler 已安装大部分openGauss 所需的软件。

1.4 远程管理准备

openGauss 需要root 用户远程登录的权限。因此openEuler 需要开启ssh 服务。默认情况下,openEuler已支持远程登录,ssh 服务默认处于已开启状态,且openEuler22.09已默认允许root用户远程登录(即PermitRootLogin 参数值为yes) 。但在实验过程中,发现从Windows10 客户端登录远程登录openEuler22.09 服务器时会发生算法不匹配的问题,需要修改/etc/ssh/sshd_cofig 配置文件,将HostKeyAlgorithms 和Pubkey-AcceptedKeyTypes 两行原有的算法注释掉,添加Host-KeyAlgorithms ssh-rsa,ssh-dss 和PubkeyAcceptedKey-Types ssh-rsa,ssh-dss 两行新的算法。并确保Permit-RootLogin 参数的值为yes,实现root 用户可以远程登录。修改完配置文件,需要使用systemctl restart sshd命令重启sshd服务,ssh服务的相关配置才能生效。

1.5 关闭防火墙

根据openGauss的官方文档,目前openGauss仅支持防火墙关闭的状态下安装,所以需要关闭防火墙和SELinux。通过vim 编辑器修改/etc/selinux/config 文件,设置SELINUX 参数的值为“disabled”。并通过命令systemctl stop firewalld 和systemctl disable firewalld,永久关闭防火墙。重启服务器后,通过getenforce 命令和systemctl status firewalld 命令确保防火墙和SELinux已处于关闭状态。

1.6 关闭RemoveIPC

根据openGauss 的官方文档,CentOS 操作系统无须进行此步骤,但openEuler 需要在数据库的各个节点上操作此步骤。单节点只需在本服务器上操作即可。首先用vim 编辑器修改/etc/systemd/logind.conf 文件,将该文件中的RemoveIPC 参数设为no(取消RemoveIPC=no前的注释即可)。然后用vim编辑器修改/usr/lib/systemd/system/systemd-logind.service 文件,将该文件中的RemoveIPC值设为no(即文件末增加一行RemoveIPC=no) 。修改之后注意必须重载配置参数,配置才能生效systemctl daemon-reload;systemctl restart systemd-logind。

1.7 系统参数调优

openGauss安装前还需要对openEuler系统内核进行参数调优,为了重启系统后参数调优依然有效,需要直接修改配置文件/etc/sysctl.conf,增加net.ipv4.tcp_retries1=5,net. ipv4. tcp_syn_retries=5,net. sctp.path_max_retrans=10,net.sctp.max_init_retransmits=10等参数设置。还需要修改资源限制文件/etc/security/limits.conf,在文件末增加* soft nofile 1000000,* hard nofile 1000000,* soft nproc 60000 等参数设置,修改用户可以使用的最大文件数和最大线程。系统参数调优后,需要重启openEuler服务器。

2 openGauss的极简版单节点安装

2.1 用户和用户组准备

完成了系统部分的准备工作,开始进入数据库的安装阶段。openGauss 的安装建议规划单独的用户组,以root 用户登录openEuler 服务器,使用命令groupadd dbgrp 创建用户组dbgrp。并规划单独的用户用于管理和运维openGauss 数据库,创建组成员普通用户omm,同步设置用户密码:useradd -g dbgrp omm;passwd omm。

2.2 目录和权限准备

仍然使用root用户登录openEuler操作系统,创建openGauss 的安装包存放目录mkdir -p /opt/huawei/openGauss,并赋予该目录可读写的权限chmod 777-R/opt/huawei。修改该安装包存放目录的 /opt/huawei/openGauss 的属主和属组为之前规划的数据库单独用户和用户组。设置属主为omm,属组为dbgrp:chown -R omm:dbgrp /opt/huawei。

2.3 openGauss下载

openGauss 的下载请到openGauss 的开源社区https://www.opengauss.org/zh/download/选择对应平台的最新版本,目前openGauss server 的最新版本是openGauss_3.1.0,开源社区提供企业版、极简版和轻量版三种支持openEuler 操作系统的软件包。企业版主要针对企业和对数据库性能要求较高的用户,安装流程比较复杂,功能更全。极简版主要针对高校和个人测试,可以进行单节点和一主一备的节点环境安装部署。轻量版删减部分组件,安装,卸载,升级等需要手动操作。本文使用的是极简版软件包:openGauss-3.1.0-openEuler-64bit.tar.bz2。使用openGauss 的管理用户omm 登录openEuler 服务器,切换到已创建的目录 /opt/huawei/openGauss 下载软件包并解压缩该软件包,通过wget https://opengauss. obs. cn-south-1. myhuaweicloud.com/3.1.0/x86_openEuler/openGauss-3.1.0-openEuler-64bit.tar.bz2命令获取安装软件包。通过tar -jxf openGauss-3.1.0-openEuler-64bit.tar.bz2解压缩到当前目录下。

2.4 创建软链接

openGauss 的官方文档推荐的操作系统是openEuler 20.3LTS,本文使用的openEuler 22.09,版本更新,安装的过程中会出现找不到库文件libreadline.so.7的问题。需要创建软链接libreadline.so.7软链接指向libreadline.so.8 即可解决该问题。首先通过ldconfig-p | grep readline命令确定当前系统中libreadline相关软件包的绝对路径是/usr/lib64/,切换到该路径下后使用命令ln -s /usr/lib64/libreadline. so. 8 /usr/lib64/libreadline.so.7创建软链接。

2.5 单节点安装

完成以上的前期准备工作后,使用openGauss 的管理用户omm 登录openEuler 服务器,使用cd 命令切换到解压缩后的目录下/opt/huawei/openGauss/simpleInstall下,执行sh install.sh -w “Huawei@123”,其中Huawei@123是设置的数据库密码。开始进行数据库的安装。安装完成后通过查看数据路径下的conf 文件 / opt / huawei / opengauss / data / single_node / pstsgresql.conf | grep port 确认数据库使用的端口。如图3 所示,当前数据库使用的端口号是5432。通过ps ux | grep gaussdb 命令和gs_ctl query -D /opt/huawei/openGauss/data/single_node/查看数据库的状态。根据数据库返回的状态可以启动/重启/关闭数据库,命令是gs_ctl start /restart /stop-D /opt /huawei /openGauss /data/single_node/-Z /single_node。初始化安装用户omm 登录数据不需要输入密码直接使用gsql -d postgres -p 5432连接数据库,其中-d参数指定连接的数据库,-p指定数据库的端口号[5],如图4所示。

图4 数据库登录

3 openGauss的RPM安装

通过以上的安装方式,总体感觉基于openEuler上部署openGauss 的步骤比较烦琐。其实openEuler也有简单快捷的部署方式:第一种方式是在安装openEuler 的过程中软件选择时,直接选择“openGauss server”在openEuler 操作系统部署时同步完成open-Gauss 数据库的部署。第二种方式是在openEuler 安装完成后直接使用yum install -y opengauss 进行open-Gauss数据库安装。这两种方式的本质都是基于RPM进行安装,缺点是只支持单机版数据库,且安装后的openGauss数据库安装路径、数据路径、监听端口和数据库用户等都是系统默认的。其默认安装目录是/usr/local/opengauss,默认数据目录是/var/lib/opengauss/data,默认安装实例监听的地址和端口是127.0.0.1:7654,默认数据库用户名为opengauss。通过su -opengauss 切换用户后可以使用gsql -d postgres -p 7654实现数据库的登录,正常使用opengauss数据库。

4 结论

通过基于openEuler 国产开源Linux 操作系统部署单节点openGauss国产开源关系型数据库的实验环境,深入了解openEuler 的运维、管理和简单的故障处理以及openGauss数据库部署的注意事项。通过实验环境的部署发现单节点的部署相对比较简单,下一步将进行继续基于openEuler 进行一主一备、一主多备的数据库环境部署,使得实验环境更加贴合现实生产环境和企业场景需求。

猜你喜欢
编辑器开源命令
只听主人的命令
五毛钱能买多少头牛
车辆段收发车运行图编辑器的设计与实现
移防命令下达后
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
这是人民的命令
开源计算机辅助翻译工具研究
基于VLIW目标机的ELF二进制编辑器设计与实现
对卢沟桥事变期间一份“作战命令”的考析