-
1、新建spec模板文件rpmdev-newspec librpcsecgss2、宏定义通用宏定义文件:/usr/lib/rpm/macros、/usr/lib/rpm/macros.d、/usr/lib/rpm/redhat/macros、/etc/rpm/、~/.rpmmacros 优先级为:用户自定义相关:~/.rpmmacros > 系统相关的配置:/etc/rpm/ > 全局扩展配置:/usr/lib/rpm/macros.d/* > 全局的配置:/usr/lib/rpm/macros自定义宏:%define _prefix /usr/local查看宏定义:rpm --eval “%{_sysconfdir}” rpm --showrc | grep _sysconfdi3、打包构建RPM:rpmbuild -bb librpcsecgss.spec构建SRPM:rpmbuild -bs librpcsecgss.spec构建SRPM和RPM:rpmbuild -ba librpcsecgss.spec4、查找构建失败原因1) 查看对应构建失败文件内容:vi /var/tmp/rpm.tmp.*2) No build ID found in xx问题,在spec文件中添加如下宏定义:define __debug_install_post \%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\%{nil}3) %configure和./configure重复4) 有些构建使用CMAKE,不使用configure5、软链接创建:ln -s 目标 软链接 -- ln -s libstdc++.so.6.0.19 libstdc++.so.6删除:rm -rf 软链接 -- rm -rf libstdc++.so.6重新链接:ln -snf 新目标 软链接 -- ln -snf libstdc++.so.24 libstdc++.so.66、提取rpm包文件显示包内文件文件:rpm2cpio R-3.6.1-1.el7.aarch64.rpm | cpio -t提取rpm包文件(自动提取到当前目录 ):rpm2cpio R-3.6.1-1.el7.aarch64.rpm | cpio -id ./usr/local/R/lib/R/library/utils/R/sysdata.rdx7、安装src.rpm源码包第一种方法:rpmbuild --rebuild --clean ~/rpmbuild/SRPMS/curl-7.54.0-1.el7.src.rpm第二种方法 :rpm -ivh curl-7.54.0-1.el7.src.rpm (CentOS默认解压路径为~/rpmbuild)rpmbuild -bb ~/rpmbuild/SPECS/curl.spec8、缺少模块和库文件1)有些是因为rpm本身检查的原因导致,可以跳过,如提示缺少包内本就存在的模块rpm -ivh ../RPMS/aarch64/mysql-5.7.28-1.el7.aarch64.rpm --nodeps2)查询模块和库文件文件存在:rpm -qf /usr/lib64/libstdc++.so.6 (绝对路径)文件不存在,通过命令查找提供文件的包:yum provides libstdc++.so.6 或 yum provides */libstdc++.so.63)打包到rpm包中,如缺少libstdc++.so.6(GLIBCXX*):在spec文件中增加如下信息,将其打包到rpm包中:Source1: libstdc++.so.6%{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}/%{_prefix}/%{name}-%{version}/lib/libstdc++.so.69、libstdc++.so.6库内文件查询查询GLIBCXX版本:strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX10、压缩和解压鲲鹏论坛上传文件有大小和格式限制,可能需要分卷操作。zip压缩分卷及解压:压缩 zip R-3.6.1-1.el7.aarch64.rpm.zip R-3.6.1-1.el7.aarch64.rpm分卷 zip -s 20m R-3.6.1-1.el7.aarch64.rpm.zip --out R-3.6.1-1.el7.aarch64.rpm.file.zip(大小单位k/m/g)合并 zip R-3.6.1-1.el7.aarch64.rpm.file.zip R-3.6.1-1.el7.aarch64.rpm.file.z01 R-3.6.1-1.el7.aarch64.rpm.file.z02-s=0 --out R-3.6.1-1.el7.aarch64.rpm.zip解压 unzip R-3.6.1-1.el7.aarch64.rpm.ziprar压缩分卷及解压:分卷 rar a -v18m R-3.6.1-1.el7.aarch64.rpm.rar R-3.6.1-1.el7.aarch64.rpm (大小单位k/m/g)解压 unrar x -o- -y R-3.6.1-1.el7.aarch64.rpm.part1.rar ./ (假设第一个分卷为R-3.6.1-1.el7.aarch64.rpm.part1.rar,所有分卷在同一目录下)11、rpmlint检查rpmlint检查比较严格,有些警告可以忽略。检查spec文件:rpmlint R.spec检查rpm包:rpmlint ../RPMS/aarch64/R-3.6.1-1.el7.aarch64.rpm检查src.rpm包:rpmlint ../SRPMS/curl-7.54.0-1.el7.src.rpm
-
本手册基于华为云共享云硬盘实践所编写,以操作系统为CentOS 7.4的云服务器为例,指导用户搭建RHCS(Red Hat Cluster Suite)集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。具体搭建操作步骤请参考附件,手册目录如图所示。什么是共享盘?共享云硬盘是一种支持多个云服务器并发读写访问的数据块级存储设备,具备多挂载点、高并发性、高性能、高可靠性等特点。单个共享云硬盘最多可同时挂载给16个云服务器,其使用场景如图所示。怎样实现共享功能?将共享云硬盘挂载给多台云服务器后,需要安装共享文件系统或类似的集群管理系统,才能实现在多台云服务器之间共享文件。
-
1 RPM简介1.1 RPM定义RPM(Redhat Package Manager,RedHat包管理器)是用于Redhat、CentOS、Fedora等Linux 分发版(distribution)的常见的软件包管理器。1.2 软件安装方式l 编译安装(从源码到可执行程序)l RPM安装(已完成编译打包,但依赖关系复杂)l YUM安装(自动分析RPM包依赖关系,按需要顺序依次安装)l 绿色安装(直接使用或解压后直接使用)1.3 RPM包类型和名称l RPM包类型1) RPM源码包:2) RPM安装包:l RPM包名组成 mysql 5.7 28 1 -el7 aarch 64 软件名 主版本号 次版本号 修订号 RHEL7 CPU架构平台 支持系统位数 x86_64:一般意义上的64位Intel处理器 aarch64:ARM平台64位处理器 noarch:与CPU架构平台无关1.4 RPM和YUM的区别RPM:1) RPM是一个数据库管理工具,可以通过读取数据库,可以判断软件是否已经安装;RPM可以完成安装软件、卸载软件、查询软件信息、升级、降级、检验、打包程序的操作;2) RPM包是预先在Linux主机上编译好并打包的文件,安装起来非常快捷;3) RPM仅仅能管理符合rpm格式的程序包,不能管理源码格式的程序。YUM:1) YUM是一个RPM包的管理工具,可以实现自动解决RPM包的依赖关系(自动安装依赖顺序进行RPM包的安装);2) 为何RPM包会有依赖关系?制作RPM的人,在制作RPM包的时候,就将这个RPM的所依赖的软件的信息保存在这个RPM包的内部; 2 RPM打包流程2.1 RPM打包空间配置1) 安装rpmdevtools:yum install rpmdevtools2) 执行命令:rpmdev-setuptree3) 进入目录~/rpmbuild,应有如下文件夹:2.2 RPM打包资源准备下载需要进行打包的源代码、补丁包(如果有)及其他文件(如果有),将其拷贝到~/rpmbuild/SOURCES目录下。2.3 编辑SPEC文件2.3.1 生成SPEC文件模板1) 切换目录至~/rpmbuild/SPECS,执行:rpmdev-newspec mysql2) 生成模板文件mysql.spec,然后在此文件基础上添加内容。2.3.2 修改SPEC文件1) 修改header信息Name:软件包的名称,后面可使用%{name}的方式引用Summary:软件包的内容概要Version:软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用Release:发布序列号,标明第几次打包,后面可使用%{release}引用License:软件授权方式,通常就是GPLSource:源代码包,可以带多个用Source0、Source1等源,后面也可以用%{source0}、%{source1}引用。NoSource:0 #第一个源码不包含在包中Patch:补丁源码,可使用Patch0、Patch1等标识多个补丁,使用%patch0或%{patch0}引用,NoPatch:0 #第一个补丁文件不包含在包中URL:软件的主页Vendor:软件开发者名字,发行商或打包组织的信息,例如RedFlag Co,LtdPreReq、Requires(pre)、Requires(post)、Requires(preun)、Requires(postun)、BuildRequires等都是针对不同阶段的依赖指定。2) 修改body信息l %prep阶段%prep:描述了解压源码包的方法。一般而言,其中包含 %autosetup 命令。另外,还可以使用 %setup 和 %patch 命令来指定操作 Source0、Patch0 等标签的文件。%autosetup:用于解压源码包。可用选项包括:-n name:如果源码包解压后的目录名称与 RPM 名称不同,此选项用于指定正确的目录名称。例如,如果 tarball 解压目录为 FOO,则使用 “%autosetup -n FOO”。-c name:如果源码包解压后包含多个目录,而不是单个目录时,此选项可以创建名为 name 的目录,并在其中解压。%setup:通常使用 -q 抑止不必要的输出。 %patch:打补丁,可指定层数(如-p1) 一般用法:l %build阶段%build:对解压到%{_builddir}下的源码进行编译的阶段,整个过程在该目录下完成。%configure:由于 GNU configure 很常见,可使用 %configure 宏来自动设置正确选项。如果编译使用CMAKE,则不使用%configure。编译命令:make %{?_smp_mflags}一般用法:l %install阶段%install:安装阶段需要执行的命令,即从 %{_builddir} 复制相关文件到 %{buildroot} 目录(通常表示从 ~/rpmbuild/BUILD 复制到 ~/rpmbuild/BUILDROOT/XXX) 目录,并根据需要在 %{buildroot} 中创建必要目录。 %make_install或%makeinstall:安装命令 一般用法:高版本系统时$RPM_BUILD_ROOT代替%{buildroot}l %check阶段%check:测试代码应写入 %check 部分,如make test 或 make check一般用法:l %file部分%file:列出了需要被打包的文件和目录 %defattr:用于设置默认文件权限,通常可以在 %files 的开头看到它 %doc:指明文档文件,如README文件 %license:指明许可文件,如LICENSE文件 %config:指明配置文件,如my.cnf %dir:指明目录一般用法:注意:%{_bindir}/* 不会声明此软件包拥有 /usr/bin 目录,而只包含其中的文件。如果您列出一个目录,则该软件包拥有这个目录,及该目录内的所有文件和子目录。因此,不要列出 %{_bindir},并且要小心的处理那些可能和其他软件包共享的目录。 如果存在以下情况,可能引发错误:1)通配符未匹配到任何文件或目录2)文件或目录被多次列出3)未列出 %{buildroot} 下的某个文件或目录也可以使用 %exclude 来排除文件。这对于使用通配符来列出全部文件时会很有用,注意如果未匹配到任何文件也会造成失败。l %changelog部分%changelog:变更日志,本段是修改日志段。第一行是:* 星期月日 年 修改人电子信箱。其中:星期、月份均用英文形式的前3个字母,用中文会报错。接下来的行写的是修改了什么地方,可写多行。一般以减号开始,便于后续的查阅。 总结:Ø SPEC文件中使用了较多的宏,如果查看对应宏的内容,可采用命令:Ø body部分各阶段列表 Ø 常用宏 2.4 RPM打包2.4.1 rpmlint检查SPEC文件或RPM包Ø 安装rpmlint:yum install rpmlintØ 使用rpmlint查找SPEC文件和RPM包的常见错误,如果返回错误/警告,使用 “-i” 选项查看更详细的信息。但由于rpmlint检测较严格,一些错误可忽略。$ rpmlint –i program.spec$ rpmlint NAME.spec ../RPMS/*/NAME*.rpm ../SRPMS/NAME*.rpm2.4.2 构建SRPM和RPMØ 构建SRPM 和RPM包cd ~/rpmbuild/SPECS$ rpmbuild -ba mysql.specØ 构建SRPM包cd ~/rpmbuild/SPECSrpmbuild –bs mysql.specØ 构建RPM包cd ~/rpmbuild/SPECSrpmbuild -bb mysql.specØ 如果成功,RPM 会保存至 ~/rpmbuild/RPMS,SRPM 会保存至 ~/rpmbuild/SRPMS。Ø 如果失败,请查看 BUILD 目录的相应编译日志。为了帮助调试,可以用 --short-circuit 选项来忽略成功的阶段。例如,若想要(略过更早的阶段)重新从 %install 阶段开始,请执行:$ rpmbuild -bi --short-circuit mysql.spec2.5 RPM包安装和卸载Ø 安装RPM包Ø 运行测试Ø 卸载RPM包3 RPM打包示例以R-3.6.1为例进行RPM打包。3.1 前提条件l 配置本地yum源,参考5.2节《yum源配置》l 打包资源准备上传 R-3.6.1.tar.gz源码包至服务器~/rpmbuild/SOURCES下载地址:https://mirror.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.6.1.tar.gz上传pcre-8.40.tar.gz源码包至服务器任意目录下,如/opt/下载地址:https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz上传curl-7.64.1.tar.gz源码包至服务器任意目录下,如/opt/下载地址:https://curl.haxx.se/download/curl-7.64.1.tar.gz将上述资源拷贝到~/rpmbuild/SOURCES目录下。3.2 R打包1、 安装依赖2、 安装pcre-8.40和curl-7.64.1相关附件:pcre.spec文件和curl.spec文件。3、 编辑R.spec文件详见附件R.spec文件。 4、打包执行命令打包:打包完成:查看rpm包:至此,RPM打包R-3.6.1完成。4 RPM打包常见问题4.1 SPEC文件从Windows拷贝到Linux换行符问题问题描述:pec文件是从Windows拷贝到Linux系统,执行rpmbuild -ba hello.spec,提示换行符问题。解决办法:如果.spec文件是从Windows拷贝到Linux系统,必须转换为UNIX格式;4.2 打补丁提示找不到patch文件问题描述:patch命令层数参数(-p0)不对导致找不到patch文件解决办法:修改.spec文件中的patch命令指定层数(如p1),忽略起始目录,从相同目录(src/)开始:4.3 No build ID note found in xx现象描述:解决方法:在SPEC文件开始添加如下宏定义:参考文档:https://blog.csdn.net/zhangna20151015/article/details/786050004.4 避免生成debuginfo包找到~/rpmmacros并打开,添加下列内容:4.5 ./configure:No such file or directory解决方法:有些软件安装已不使用./configure进行配置,可使用如下方法:Ø 目录下没有configure,但有configure.am或configure.in时,需要用autoconf命令来生成configure。Ø 有些软件使用CMAKE 注意:如果使用CMAE,在SPEC文件中尽量不要对%configure或./configure进行注释(直接删除就好),否则也会提示找不到./configure文件。4.6 动态库libstdc++.so.6问题安装时缺少动态库问题:解决方法:1、先确认动态库中是否有相应GLIBCXX_3.4.20和GLIBCXX_3.4.20。查看后发现libstdc++.so.6.24有上述文件。参考:https://blog.csdn.net/u012811841/article/details/778545812、将动态库打包进去在spec文件中添加如下内容。5 参考信息5.1 rpm和yum软件包管理https://www.cnblogs.com/du-z/p/10886109.html 5.2 yum源配置本地yum源配置(也可用附件local_yum_install.sh脚本配置):https://www.cnblogs.com/diantong/p/10105805.html网络yum源配置:https://www.cnblogs.com/AganRun/p/12079080.html5.3 RPM打包原理、示例、详解及备查https://blog.csdn.net/get_set/article/details/534533205.4 打补丁问题https://blog.csdn.net/misiter/article/details/73956085.5 安装src.rpm源码包https://www.cnblogs.com/einyboy/archive/2012/09/13/2683015.html5.6 软链接处理https://blog.csdn.net/qq_21386275/article/details/798815435.7 安装RPM找不到库文件https://www.cnblogs.com/zl1991/p/7326142.html5.8 RPM宏定义文件https://blog.csdn.net/hawkerou/article/details/533796645.9 提取RPM包文件https://blog.csdn.net/sdfshfh/article/details/87891457注意:当目录下有相同文件时会拷贝失败,如第一次只拷贝了一个文件,后面拷贝了匹配项。见下图5.10 查询缺少的依赖包https://blog.51cto.com/2638441/2312549?source=dra5.11 RPM官网指南http://rpm.org/
-
之前分享了openssl交叉编译方法,现在可以将编译好的openssl动态库使用到paho mqtt中了。P.S.如果系统中已有openssl库,则可以直接使用。是否有安装openssl可以直接在控制台输入openssl命令,如果没有报命令不识别之类的,且出现如下结果就说明已安装了openssl:一、准备工作下载paho.mqtt.c源码,github下载地址:https://github.com/eclipse/paho.mqtt.c解压后上传到linux编译机上将交叉编译工具链也上传解压,并确认交叉编译器所在路径。如果是64位的编译链,还需要确认头文件(sysroot)所在路径 (详细确认方法请参考openssl交叉编译方法的帖子内容)二、修改Makefile主要修改3个地方:交叉编译器路径(准备工作中找到的交叉编译器所在路径)和openssl目录(之前编译好的openssl库所在目录,因为要替换的不只一处,可在文本编辑器中全局搜索openssl再自行替换),如下图所示(点击下图可使用鼠标滚轮放大缩小)如果要增加编译选项,可以加在CFLAGS中(编译选项根据需求添加,可以不添加):上图中增加的编译选项:-Wall -O3 -Wl,-z,relro,-z,now,-z,noexecstack -fno-strict-aliasing -fno-omit-frame-pointer -pipe -Wall -MD -MP -fno-common -freg-struct-return -fno-inline -fno-exceptions -Wfloat-equal -Wshadow -Wformat=2 -Wextra -rdynamic -Wl,-z,relro,-z,noexecstack -fstack-protector-strong -fstrength-reduce -fno-builtin -fsigned-char -ffunction-sections -fdata-sections -Wpointer-arith -Wcast-qual -Waggregate-return -Winline -Wunreachable-code -Wcast-align -Wundef -Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs 三、编译出库修改好Makefile后就可以编译了,先make clean一下(把原来的编译结果先清空),再make即可编译完成后可以在build/output目录下看到编译好的库:四、其他说明如果不需要交叉编译工具,而是直接使用gcc,那么修改Makefile时只要修改openssl目录即可(编译选项可加可不加)
-
一、准备工作 1、到openssl官网下载最新版本openssl(如openssl-1.1.1d.tar.gz),上传到linux编译机上(如上传到目录/home/test下),并使用tar -xvf openssl-1.1.1d.tar.gz解压: 2、将要用到的交叉编译工具链解压后,找到交叉编译器所在路径(如果直接使用系统的gcc,可跳过这一步,但要保证gcc已安装): 注意:gcc/g++/ar/ranlib/nm等文件的名字根据编译链的不同,文件名开头会有所不同,但文件名结尾是不变的,如arm架构比较常见的编译器是arm-linux-gcc二、配置 进入openssl源码目录,运行如下配置命令 ./config shared --prefix=/home/test/openssl --openssldir=/home/test/openssl/ssl或./config no-asm shared --prefix=/home/test/openssl --openssldir=/home/test/openssl/ssl 其中prefix 是安装目录,openssldir 是配置文件目录,shared 作用是生成动态链接库(即.so库) 注意:no-asm表示不使用汇编代码,如果编译有问题再加,没有问题就不加 注意: 如果遇到64位的编译链,需要添加sysroot参数,用如下命令配置(+参考图片): ./config no-asm shared --prefix=/home/test/openssl --openssldir=/home/test/openssl/ssl --sysroot="{头文件所在路径}" 一般来说,头文件所在路径 与 XXX-gcc/g++/ar/nm等(XXX是交叉编译器名字的前缀)的所在目录不一样,在另外一个大目录下(如下图所示) Tips: 可以先用find ./ -name *-gcc命令找到gcc/g++/ar/ranlib/nm等文件所在目录,那另一个目录就是头文件所在路径 从上图看,gcc/g++/ar/ranlib/nm等文件在sysroots/x86_64-fslsdk-linux的某目录,所以头文件一般在另一个目录sysroots/ppc64e6500-fsl-linux下,且sysroots/ppc64e6500-fsl-linux下的usr/include目录下面有许多(不是一两个)头文件(也就是说--sysroot的值是usr/include所在的目录): 三、修改Makefile 配置完成后会在openssl源码目录下生成一个Makefile文件,打开查看内容,会看到CROSS_COMPILE的值是空的 这时要将CROSS_COMPILE的值修改为XXX-gcc所在绝对路径+XXX-gcc的文件名前缀(参考下图),也就是说要先找到交叉编译工具xxx-gcc/g++/ar/nm等文件所在路径(其中“XXX-”是交叉编译工具文件名前缀): 修改CROSS_COMPILE的值最终是为了修改arm-linux-xxx-gcc/ar/ranlib/nm等的路径,在比较老的openssl版本中,没有CROSS_COMPILE参数,需要修改如下5个变量的值 (注意下图所用的交叉编译工具不是跟前面的不一样,所以路径也不同): 四、编译出库 修改完Makefile后就可以进行编译了,到openssl源码目录下,运行make命令: openssl源码目录下,运行make命令: make 如果没有报错,再运行make install make install 在配置的openssl安装目录下/home/test/openssl找到lib目录,有如下两个文件: libcrypto.so.1.1、libssl.so.1.1和软链接libcrypto.so、libssl.so 五、其他说明 1、交叉编译工具不是在任何环境上都可使用的,需要系统环境和编译工具匹配才可以,主要看CPU和指令集 2、如果不需要交叉编译工具,而是直接使用gcc,那么,配置生成Makefile后不需要修改Makefile(即跳过第三步),直接编译即可 3、如果make出错后修改了Makefile,记得make clean后再make 4、有的编译工具是32位的,如果在64位的linux机器上使用,可能会报如下错误,这时只要将Makefile中的-m64都删除,再进行编译即可
-
1、CentOSCentOS系统yum源有rpm安装包,可以直接通过“yum -y install device-mapper-multipath*”安装,或通过如下链接手动使用rpm -ivh命令安装:http://mirror.centos.org/altarch/7/os/aarch64/Packages/device-mapper-multipath-0.4.9-127.el7.aarch64.rpmhttp://mirror.centos.org/altarch/7/os/aarch64/Packages/device-mapper-multipath-devel-0.4.9-127.el7.aarch64.rpmhttp://mirror.centos.org/altarch/7/os/aarch64/Packages/device-mapper-multipath-libs-0.4.9-127.el7.aarch64.rpmhttp://mirror.centos.org/altarch/7/os/aarch64/Packages/device-mapper-multipath-sysvinit-0.4.9-127.el7.aarch64.rpm2、中标麒麟NeoKylin中标麒麟NeoKylin系统yum源有rpm安装包,可以直接通过“yum -y install device-mapper-multipath*”安装,或通过如下链接手动使用rpm -ivh命令安装:http://download.cs2c.com.cn/neokylin/server/releases/7.0/aarch64/os/Packages/device-mapper-multipath-0.4.9-68.nd7.1.aarch64.rpmhttp://download.cs2c.com.cn/neokylin/server/releases/7.0/aarch64/os/Packages/device-mapper-multipath-libs-0.4.9-68.nd7.1.aarch64.rpmhttp://download.cs2c.com.cn/neokylin/server/releases/7.0/aarch64/os/Packages/device-mapper-multipath-sysvinit-0.4.9-68.nd7.1.aarch64.rpm3、凝思凝思有一些自己的多路径软件,需要根据对应系统版本选择对应的软件安装,获取链接如下:http://www.linx-info.com/#/support/software4、FedoraFedora系统针对不同的版本有不同的多路径软件,链接如下:Fedora Rawhide for aarch64:https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/d/device-mapper-multipath-0.8.2-1.fc32.aarch64.rpmFedora 31 for aarch64:https://rpmfind.net/linux/fedora/linux/releases/31/Everything/aarch64/os/Packages/d/device-mapper-multipath-0.8.0-3.fc31.aarch64.rpmFedora 30 for aarch64:https://rpmfind.net/linux/fedora/linux/releases/30/Everything/aarch64/os/Packages/d/device-mapper-multipath-0.7.9-6.git2df6110.fc30.aarch64.rpmFedora 29 updates for aarch64:https://rpmfind.net/linux/fedora/linux/updates/29/Everything/aarch64/Packages/d/device-mapper-multipath-0.7.7-6.gitef6d98b.fc29.aarch64.rpmFedora 29 for aarch64:https://rpmfind.net/linux/fedora/linux/releases/29/Everything/aarch64/os/Packages/d/device-mapper-multipath-0.7.7-5.gitef6d98b.fc29.aarch64.rpm5、UbuntuUbuntu系统直接安装多路径软件multipath-tools即可:apt-get install multipath-tools如果需要从SAN引导,则还需要multipath-tools-boot软件包,不需要可以不安装:apt-get install multipath-tools-boot
-
文档位置已迁移至如下链接:https://support.huaweicloud.com/tstg-kunpenghpcs/kunpenghpcs_tstg_0001.html
-
1、简介Netdata是一个高度优化的Linux守护进程,它为Linux系统,应用程序,SNMP服务等提供实时的性能监测。它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况。使用此软件,你可以得到:1.优美的界面:bootstrap框架下的控制界面2.自定义的控制界面:你可以使用简单的HTML代码去自定义控制界面(不需要使用javascript)3.极其的快速而高效:程序使用C进行编写(默认安装下,预计只有2%的单核CPU使用率和少许的内存使用率)4.零配置:你只需要去安装它,接着它就会自动地监测一切数据5.零依赖:它的静态网络文件和网络接口拥有自己的网络服务器6.可扩展:用它自身的插件API(可以使用许多方式来制作它的插件,从bash到node.js),你可以检测任何可以衡量的数据。7.可嵌入:它可以在任何Linux内核可以运行的地方运行 2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包netdatahttps://github.com/google/googletest.git3、依赖安装 无4、组件编译安装Netdata提供多种安装方式,本文介绍两种1)源码安装安装依赖yum install autoconf automake curl gcc git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel Judy-devel make nc pkgconfig python zlib-devel 下载源码git clone https://github.com/netdata/netdata.git --depth=100cd netdata 运行脚本安装./netdata-installer.sh 2)运行Docker 镜像拉取docker镜像docker pull netdata/netdata 启动docker(使用netdata镜像)docker run -d --name=netdata \ -p 19999:19999 \ -v /etc/passwd:/host/etc/passwd:ro \ -v /etc/group:/host/etc/group:ro \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ --cap-add SYS_PTRACE \ --security-opt apparmor=unconfined \ netdata/netdata5、系统配置 无6、测试curl 127.0.0.1:19999 浏览器访问: https://<serverip>:19999 7、参考信息https://docs.netdata.cloud/packaging/installer/8、FAQ Q:安装后无法访问服务A:安装或启动docker实例后netdata服务会自动拉起,如果无法访问,首先排除服务是否启动,其次是检查网络是否正常,端口是否可以访问(是否关闭或禁用)。
-
前言:本文以操作系统为CentOS 6.5的云服务器为例,搭建RHCS集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。搭建一共6个步骤,分为7篇文章分步讲解,点击下面链接即可跳转到相应文章。00 简介01 RHCS集群资源规划02 创建资源03 配置云服务器网络04 安装RHCS集群05 创建集群并配置磁盘06 验证磁盘共享功能操作场景验证共享盘是否可以实现在多台云服务器之间共享文件。操作步骤使用root用户登录云服务器ecs-share-0001。执行以下步骤,在云服务器ecs-share-0001的磁盘挂载目录“/mnt/gfs_vbd”上新建文件“test-ecs1”。执行以下命令,进入“/mnt/gfs_vbd/”目录。cd /mnt/gfs_vbd/执行以下命令,打开“test-ecs1”文件。vi test-ecs1按“i”进入编辑模式。为“test-ecs1”文件添加内容,例如“hello1”。按“Esc”,输入“:wq”,并按“Enter”。保存设置并退出vi编辑器。执行以下命令,查看“test-ecs1”文件内容。cat test-ecs1回显类似如下信息:表示“test-ecs1”文件内容添加成功。执行以下命令,再次查看“test-ecs1”文件是否存在。ls回显类似如下信息:表示云服务器ecs-share-0001的“/mnt/gfs_vbd/”目录下存在“test-ecs1”文件。使用root用户登录云服务器ecs-share-0002。执行以下步骤,验证在云服务器ecs-share-0002的磁盘挂载目录“/mnt/gfs_vbd”中是否可以查看到2中创建的“test-ecs1”文件。执行以下命令,进入“/mnt/gfs_vbd/”目录。cd /mnt/gfs_vbd/执行以下命令,查看“test-ecs1”文件是否存在。ls回显类似如下信息:表示通过云服务器ecs-share-0001创建的“test-ecs1”文件,在云服务器ecs-share-0002的“/mnt/gfs_vbd/”目录下可以查看到。执行以下命令,查看“test-ecs1”文件内容。cat test-ecs1回显类似如下信息:表示通过云服务器ecs-share-0001添加的“test-ecs1”文件内容,在云服务器ecs-share-0002中可以看到,内容同步成功。执行以下步骤,验证在云服务器ecs-share-0002上是否可以修改文件“test-ecs1”。执行以下命令,打开“test-ecs1”文件。vi test-ecs1按“i”进入编辑模式。为“test-ecs1”文件添加内容,例如“hello2”。按“Esc”,输入“:wq”,并按“Enter”。保存设置并退出vi编辑器。执行以下命令,查看“test-ecs1”文件内容。cat test-ecs1回显类似如下信息:表示在云服务器ecs-share-0002上也可以对“test-ecs1”文件内容进行修改。使用root用户登录云服务器ecs-share-0001。执行以下步骤,验证在云服务器ecs-share-0001中是否可以读取5中修改的“test-ecs1”文件内容。执行以下命令,进入“/mnt/gfs_vbd/”目录。cd /mnt/gfs_vbd/执行以下命令,查看“test-ecs1”文件内容。cat test-ecs1回显类似如下信息:表示通过云服务器ecs-share-0002修改的“test-ecs1”文件内容,在云服务器ecs-share-0001中也可以看到,内容同步成功。
-
前言:本文以操作系统为CentOS 6.5的云服务器为例,搭建RHCS集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。搭建一共6个步骤,分为7篇文章分步讲解,点击下面链接即可跳转到相应文章。00 简介01 RHCS集群资源规划02 创建资源03 配置云服务器网络04 安装RHCS集群05 创建集群并配置磁盘06 验证磁盘共享功能操作场景登录High Availability Management页面创建集群并配置磁盘。操作步骤打开并登录High Availability Management页面。地址:https://ecs-share-0003的弹性IP:8084 例如:https://122.3x.xx.xx:8084帐号及密码:创建ecs-share-0003时设置的root帐号及密码选择“Manage Cluster”,单击创建集群。在“Create New Cluser”页面,根据页面提示设置以下参数:Cluser Name:自定义集群名称,例如,mycluster。Node Name:分别设置计算节点的名称,例如,ecs-share-0001。Paasword:安装ricci中设置的ricci密码。添加完第一个节点的信息后,单击“Add Another Node”添加第二个节点。本示例在集群中添加了两个节点,具体参数如 图1 所示。图1 创建集群参数设置完成后,单击“Create Cluster”,开始创建集群。创建成功后,如 图2 所示,两台云服务器均已添加至mycluster集群中。图2 创建集群成功注意:如果重启节点ecs-share-0001和ecs-share-0002,在重启后,集群相关的服务(cman、rgmanager、ricci、modclusterd、clvmd)都会自动重启,并且会自动加入集群。如果发现有节点没有加入到mycluster集群,可以在High Availability Management中重新将节点加入到mycluster集群即可。选择“Resources”,单击为集群新建磁盘资源。在“Add Resource to Cluster”页面,根据页面提示设置以下参数:Name:自定义磁盘资源名称,例如,GFS_VBD。Mount Point:安装ricci中设置的磁盘挂载目录,例如,/mnt/gfs_vbd。Device,FS Label,or UUID:此处以填写安装ricci中磁盘设备名称为例,例如,/dev/xvdb。Filesystem Type:此处选择安装ricci中设置的分布式文件系统,例如,GFS2。本示例添加了名称为GFS_VBD的磁盘资源,具体参数如 图3 所示。图3 创建磁盘资源参数设置完成后,单击“Submit”,开始创建磁盘资源。创建成功后,如 图4 所示。图4 创建磁盘资源成功选择“Failover Domains”,单击为集群服务新建故障切换域。在“Add Failover Domain to Cluster”页面,根据页面提示设置以下参数:Name:自定义故障切换域的名称,例如,gfs_failover。将节点1和节点2添加至故障切换域。本示例添加了名称为gfs_failover的故障切换域,具体参数如 图5 所示。图5 创建故障切换域参数设置完成后,单击“Create”,开始创建故障切换域。创建成功后,如 图6 所示。图6 创建故障切换域成功选择“Service Groups”,单击为集群中的节点创建服务组。以ecs-share-0001为例。在“Add Service Group to Cluster”页面,根据页面提示设置以下参数:Service Name:自定义服务组的名称,例如,GFS_SG_VBD_1。Failover Domain:选择第8步中创建的故障切换域,例如,gfs_failover。Add Resource:选择第5步中创建的资源,例如,GFS_VBD。本示例添加了名称为GFS_SG_VBD_1的服务组,并添加了GFS_VBD磁盘资源,具体参数如 图7 和 图8 所示。图7 创建服务组图8 添加GFS_VBD磁盘资源参数设置完成后,单击“Submit”,并选择Start on ecs-share-0001节点,开始为ecs-share-0001创建服务组。创建成功后,如 图9 所示。图9 创建ecs-share-0001服务组成功参考11~13,为另一个节点ecs-share-0002创建服务组。两个服务组都创建成功后,如 图10 所示。图10 创建两个服务组成功服务组创建完成后,执行以下步骤,分别查看云服务器ecs-share-0001和ecs-share-0002的集群状况。以ecs-share-0001为例。使用root用户登录计算节点。执行以下命令,查看服务组。clustat回显类似如下信息:GFS_SG_VBD_1和GFS_SG_VBD_2即为第14步中创建的两个服务组。执行以下命令,查看磁盘分区及挂载信息。df -h回显类似如下信息:其中,“/dev/xvdb”即为共享盘设备名,分区成功并已挂载至“/mnt/gfs_vbd”目录下。注意:如果执行完df -h命令发现分区表里没有挂载的共享盘,请执行“mount 磁盘设备名称 挂载目录” 命令重新挂载磁盘,例如,mount /dev/xvdb /mnt/gfs_vbd,挂载后便可与其他云服务器同步使用该共享盘。参考15.1~15.3,查看另一台云服务器的集群状况。
-
前言:本文以操作系统为CentOS 6.5的云服务器为例,搭建RHCS集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。搭建一共6个步骤,分为7篇文章分步讲解,点击下面链接即可跳转到相应文章。01 RHCS集群资源规划02 创建资源03 配置云服务器网络04 安装RHCS集群05 创建集群并配置磁盘06 验证磁盘共享功能搭建一个RHCS集群系统,需要分别为管理节点和其他节点安装luci和ricci软件,具体如下:luci: RHCS集群管理工具的主控端,提供了管理RHCS集群的web页面(High Availability Management),luci安装在管理节点上,管理集群主要是通过跟集群中其他节点上的ricci通信来完成的。ricci: RHCS集群管理工具的受控端,安装在集群中的其他节点上,luci就是通过每一个节点上的ricci管理后端。安装ricci操作场景本节将为节点1和节点2(即云服务器ecs-share-0001和ecs-share-0002)安装ricci并配置磁盘。本文以云服务器的操作系统为“CentOS 6.5 64bit ”为例。不同云服务器的操作系统的配置可能不同,本文仅供参考,具体操作步骤和差异请参考对应操作系统的产品文档。操作步骤本操作以配置ecs-share-0001为例,节点1和节点2的配置相同。使用root用户登录云服务器。执行以下命令,下载并安装ricci软件包。yum install ricci openais cman rgmanager lvm2-cluster gfs2-utils回显类似如下信息:执行以下命令,关闭防火墙。/etc/init.d/iptables stopchkconfig iptables off执行以下命令,暂停并关闭ACPI(Advanced Configuration and Power Interface,高级配置与电源接口)服务。/etc/init.d/acpid stopchkconfig acpid off回显类似如下信息:执行以下命令,设置ricci密码。passwd ricci回显类似如下信息:根据回显提示设置ricci密码。执行以下命令,启动ricci。/etc/init.d/ricci startchkconfig ricci on回显类似如下信息:执行以下命令,查看云服务器挂载的磁盘。fdisk -lchkconfig acpid off回显类似如下信息:执行以下命令,新建磁盘挂载目录。mkdir 挂载目录命令示例:mkdir /mnt/gfs_vbd执行以下命令,为磁盘创建GFS2分布式文件系统。mkfs.gfs2 -p lock_dlm -t mycluster:gfs_vbd -j 4 /dev/xvdb回显类似如下信息:参考1~9,配置另一台云服务器ecs-share-0002。安装luci操作场景本节将为管理节点(即云服务器ecs-share-0003)安装配置luci。本文以云服务器的操作系统为“CentOS 6.5 64bit ”为例。不同云服务器的操作系统的配置可能不同,本文仅供参考,具体操作步骤和差异请参考对应操作系统的产品文档。操作步骤使用root用户登录云服务器。执行以下命令,下载并安装luci集群软件包。yum install luci回显类似如下信息:执行以下命令,关闭防火墙。/etc/init.d/iptables stopchkconfig iptables off执行以下命令,启动luci。/etc/init.d/luci startchkconfig luci on回显类似如下信息:(截图只能截到部分内容,仅供参考)luci启动成功后,即可以通过管理RHCS集群的web页面(High Availability Management)来进行集群的相关配置。
-
前言:本文以操作系统为CentOS 6.5的云服务器为例,搭建RHCS集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。搭建一共6个步骤,分为7篇文章分步讲解,点击下面链接即可跳转到相应文章。00 简介01 RHCS集群资源规划02 创建资源03 配置云服务器网络04 安装RHCS集群05 创建集群并配置磁盘06 验证磁盘共享功能操作场景本节将配置3台云服务器的网络,以确保3台云服务器网络互通。本文以云服务器的操作系统为“CentOS 6.5 64bit ”为例。不同云服务器的操作系统的配置可能不同,本文仅供参考,具体操作步骤和差异请参考对应操作系统的产品文档。操作步骤本操作以配置ecs-share-0001为例。使用root用户登录云服务器。执行以下命令,查看ecs-share-0001的host文件“/etc/hosts”。cat /etc/hosts回显类似如下信息:执行以下命令,打开“/etc/hosts”文件。vi /etc/hosts按“i”进入编辑模式。将3台云服务器的私有IP以及对应的云服务器名称添加至“hosts”文件,请按照以下回显样例进行配置:按“Esc”,输入“:wq”,并按“Enter”。保存设置并退出vi编辑器。参考1~6,配置其他2台云服务器ecs-share-0002和ecs-share-0003的网络。
-
前言:本文以操作系统为CentOS 6.5的云服务器为例,搭建RHCS集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。搭建一共6个步骤,分为7篇文章分步讲解,点击下面链接即可跳转到相应文章。00 简介01 RHCS集群资源规划02 创建资源03 配置云服务器网络04 安装RHCS集群05 创建集群并配置磁盘06 验证磁盘共享功能创建资源包括创建云服务器和创建共享云硬盘两部分。创建云服务器操作场景本节将创建云服务器。本示例中一共创建了3台云服务器,配置情况请参见RHCS集群资源规划。操作步骤进入华为云网站,登录管理控制台。选择“计算 > 弹性云服务器”。进入弹性云服务器页面。单击“购买弹性云服务器”。关于购买弹性云服务器的详细操作,请参见“弹性云服务器用户指南”。创建云服务器过程中,以下参数请按照说明配置:镜像:本示例中3台云服务器的镜像一致,均为“CentOS 6.5 64bit”。虚拟私有云、安全组、网卡:3台云服务器的网络配置需要保持一致,请使用同一个虚拟私有云,安全组、网卡,这样可以确保主网卡位于同一网络,云服务器之间能够相互通信。本示例的网络配置,具体如 图1 所示。图1 配置网络请确保所选的安全组中,入方向的TCP协议使用的端口为8084,后续登录RHCS集群的web页面时需要使用本端口。您可以新建安全组并开启8084端口,或者为已有安全组添加8084端口。本示例以为已有安全组添加8084端口为例:a. 单击“管理安全组”,进入安全组列表。b. 单击目标安全组名称,进入安全组详情页面。c. 单击“添加规则”,弹出“添加规格”对话框。d. 根据页面提示为安全组添加8084端口。本示例中的参数配置,具体如 图2 所示。图2 添加8084端口e. 参数配置完成后,单击“确定”。添加完成,即可在安全组规格列表中看到添加的8084端口。弹性IP地址:远程登录云服务器时需要使用弹性IP,即云服务器的外网IP地址。如果需要使用弹性IP。请您根据实际情况购买或者使用已有。本示例中使用新购买的IP,如 图3 所示。图3 配置弹性IP本示例为批量创建3台云服务器,具体参数如 表1 所示。表1 云服务器规格创建共享云硬盘操作场景本节将创建VBD共享云硬盘,并挂载至节点1和节点2,即ecs-share-0001和ecs-share-0002。操作步骤进入华为云网站,登录管理控制台。选择“存储 > 云硬盘”。进入云硬盘页面。单击“购买磁盘”,创建共享云硬盘。关于创建云硬盘的详细操作,请参见“云硬盘用户指南”。本示例为VBD共享云硬盘,具体参数如 表2 所示。表2 VBD共享云硬盘规格将共享云硬盘挂载至ecs-share-0001和ecs-share-0002。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签