25
EulerOS V2.0SP5 工具使用指南 文档版本 01 发布日期 2019-08-12 华为技术有限公司

EulerOS V2.0SP5 工具使用指南

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EulerOS V2.0SP5 工具使用指南

EulerOS V2.0SP5 工具使用指南

文档版本 01

发布日期 2019-08-12

华为技术有限公司

Page 2: EulerOS V2.0SP5 工具使用指南

版权所有 © 华为技术有限公司 2019。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传

播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或

特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声

明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文

档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://www.huawei.com

客户服务邮箱: [email protected]

客户服务电话: 4008302118

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 i

Page 3: EulerOS V2.0SP5 工具使用指南

目 录

1 Machine Image 制作指导..............................................................................................................11.1 安装 KIWI......................................................................................................................................................................11.1.1 版本要求..................................................................................................................................................................... 11.1.2 安装 KIWI 及模板......................................................................................................................................................11.2 修改配置........................................................................................................................................................................ 11.2.1 EulerOS KIWI 模板.................................................................................................................................................... 11.2.2 EulerOS KIWI 配置.................................................................................................................................................... 21.3 制作 Machine Image...................................................................................................................................................... 31.3.1 使用命令制作 Machine Image................................................................................................................................... 31.3.2 镜像文件说明............................................................................................................................................................. 41.3.3 格式转换..................................................................................................................................................................... 4

2 Mirror-yum 工具使用指导文档.................................................................................................... 62.1 简介................................................................................................................................................................................ 62.2 安装................................................................................................................................................................................ 62.3 环境配置........................................................................................................................................................................ 72.4 操作说明........................................................................................................................................................................ 82.4.1 下载数据..................................................................................................................................................................... 82.4.2 上传数据..................................................................................................................................................................... 9

3 Yum 镜像工具使用指导文档....................................................................................................... 113.1 简介.............................................................................................................................................................................. 113.2 安装.............................................................................................................................................................................. 113.3 Mirror-yum-server 使用说明....................................................................................................................................... 133.4 nginx 部署负载均衡.................................................................................................................................................... 17

4 libhugetlbfs 使用指导................................................................................................................. 194.1 简介.............................................................................................................................................................................. 194.2 约束限制...................................................................................................................................................................... 194.3 使用说明...................................................................................................................................................................... 194.3.1 环境配置................................................................................................................................................................... 194.3.2 接口描述................................................................................................................................................................... 204.3.3 使用样例................................................................................................................................................................... 21

EulerOS V2.0SP5 工具使用指南 目 录

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 ii

Page 4: EulerOS V2.0SP5 工具使用指南

1 Machine Image 制作指导

1.1 安装KIWI

1.2 修改配置

1.3 制作 Machine Image

1.1 安装 KIWI

1.1.1 版本要求

各个发行版集成 KIWI 的版本不同,因而各个版本的 KIWI 的特性功能有所差异。这里制作 EulerOS Machine Image 要求KIWI的版本为:7.04.21。

1.1.2 安装 KIWI 及模板

l 配置 yum repo,参考 EulerOS 官方 repo 配置说明:

http://developer.huawei.com/ict/en/site-euleros/article/yuml 通过命令,安装 EulerOS kiwi 模板包(会自动安装 kiwi 工具包):

yum install -y kiwi-template-euleros

1.2 修改配置

1.2.1 EulerOS KIWI 模板

l EulerOS kiwi 模板安装(参考1.1.2 安装 KIWI 及模板)之后,配置文件存放在 /usr/share/kiwi/image/ 目录下。

配置模板结构如下:

[root@localhost myimage]# tree /usr/share/kiwi/image/euleros-2.5-JeOS//usr/share/kiwi/image/euleros-2.5-JeOS/├── config.sh├── config.xml├── euleros-2.5-JeOS.kiwi -> config.xml├── README├── root│ ├── etc

EulerOS V2.0SP5 工具使用指南 1 Machine Image 制作指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 1

Page 5: EulerOS V2.0SP5 工具使用指南

│ │ ├── default│ │ │ └── grub│ │ ├── login.defs│ │ ├── selinux│ │ │ └── config│ │ ├── sysconfig│ │ │ ├── authconfig│ │ │ ├── firstboot│ │ │ ├── network│ │ │ └── network-scripts│ │ │ └── ifcfg-lan0│ │ └── udev│ │ └── rules.d│ │ └── 70-persistent-net.rules│ └── fastboot└── rpms

8 directories, 14 files[root@localhost myimage]# tree /usr/share/kiwi/image/vmxboot/euleros-2.5//usr/share/kiwi/image/vmxboot/euleros-2.5/├── config.sh├── config.xml├── images.sh└── root ├── include ├── linuxrc └── preinit

1 directory, 6 files

l 修改配置文件请参考 kiwi 官方配置文件:

https://doc.opensuse.org/projects/kiwi/doc/

1.2.2 EulerOS KIWI 配置

步骤1 设置root账号密码。

修改/usr/share/kiwi/image/euleros-2.5-JeOS/config.xml文件如下字段:

<users group="root"><user password="xxxxxxx" pwdformat="plain" home="/root" name="root"/></users>

l 可以直接明文设置密码,示例如下:<users group="root"><user password="Huawei@SYS3" pwdformat="plain" home="/root" name="root"/></users>

说明

“Huawei@SYS3”表示设置的明文密码。明文密码会有密码泄露的风险,请用户谨慎操作。

l 也可以设置密文,示例如下:

请先使用 useradd / passwd 命令生成密文。

HGH1000041148:~ # useradd testHGH1000041148:~ # passwd testChanging password for user test.New password: Retype new password: passwd: all authentication tokens updated successfully.HGH1000041148:~ # cat /etc/shadow | grep "^test:" | awk -F ":" '{print $2}'$6$q2fbgF1k$PxDuxvhlQX955mRjKy5JUDG1g/z/DfLrOxN/Ag4udd0KQXCFhV8ZdSZU2vgDtN6V0NdtszyInCXn0An66ckNu/HGH1000041148:~ #

把生成的密文填写到password字段,并设置 pwdformat="encrypted"。

EulerOS V2.0SP5 工具使用指南 1 Machine Image 制作指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 2

Page 6: EulerOS V2.0SP5 工具使用指南

<users group="root"><user password="$6$q2fbgF1k$PxDuxvhlQX955mRjKy5JUDG1g/z/DfLrOxN/Ag4udd0KQXCFhV8ZdSZU2vgDtN6V0NdtszyInCXn0An66ckNu/" pwdformat="encrypted" home="/root" name="root"/></users>

说明

– 制作完成之后建议删除掉配置文件中的密码,避免泄露。

– 密文必须以$6开头,以sha512算法生成密文。

步骤2 设置网卡名。

修改/usr/share/kiwi/image/euleros-2.5-JeOS/root/etc/udev/rules.d/70-persistent-net.rules文件。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="?*", NAME="lan0"

请把lan0 修改为 eth0。另外,您也可以添加多张网卡的配置记录。

如果不修改网卡名为eth0,第一张网卡会被命名为lan0,且启动制作的镜像后需要手动修改网卡配置文件。

如果有其他定制需求,请参见1.2.1 EulerOS KIWI 模板。

步骤3 设置repo

在/usr/share/kiwi/image/euleros-2.5-JeOS/config.xml配置文件中,修改或添加 <repositorytype='rpm-md'>repo-url</repository>段,且该配置文件中至少需要定义一个 <repositorytype='rpm-md'>repo-url</repository>段。示例如下:

<repository type="rpm-md"> <source path="http://192.168.1.2/repo"/> </repository>

说明

“http://192.168.1.2/repo”为对应的repo地址示例,请用户根据实际情况进行配置。

----结束

1.3 制作 Machine Image

1.3.1 使用命令制作 Machine Image

命令行说明

使用 kiwi 工具制作虚拟机镜像:kiwi --build euleros-2.5-JeOS --set-repo iso:///root/EulerOS-V2.0SP5-x86_64-dvd.iso --add-repo http://developer.huawei.com/ -d /tmp/myimage --type vmx

l --set-repo,可以是yum源,也可以是iso。

l -d 参数,指定制作目录。

l --add-repo,使用该参数添加多个repo源。

EulerOS V2.0SP5 工具使用指南 1 Machine Image 制作指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 3

Page 7: EulerOS V2.0SP5 工具使用指南

说明

“iso:///root/EulerOS-V2.0SP5-x86_64-dvd.iso”,为对应的repo地址示例,请用户根据实际情况进行配置。

制作 Machine Image 示例

1. 通过命令来制作Machine Image,如图 1:kiwi --build euleros-2.5-JeOS --set-repo iso:///home/ISO/EulerOS-2.5-x86_64.ISO

图 1-1 制作 Machine Image

2. 命令完成后,将在设置的输出目录里面生成镜像文件,如图 2。

图 1-2 镜像文件

1.3.2 镜像文件说明

通过1.3.1 使用命令制作 Machine Image制作完之后,镜像存放在 -d 指定的目录下,本例中存放在 /tmp/myimage 目录。

l qcow2 格式镜像:EulerOS-2.5.x86_64-1.0.0.qcow2。

l raw 格式镜像: EulerOS-2.5.x86_64-1.0.0.raw。

l 其他输出文件均可不用关注。

l 需要其他格式镜像请使用qemu-img convert命令转换(不支持zvhd)。

说明

Mar-23 13:00:25 <1> : Initializing image system on: /tmp/myimage/build/image-rootDirectory '/var/run/screen' must have mode 777. failedApr-13 13:04:14 <1> : Initializing image system on: /tmp/image/build/image-rootDirectory '/var/run/screen' must have mode 775. failed

如果出现上述报错,请根据提示修改 /var/run/screen 目录权限为777或775:chmod 777 /var/run/screenchmod 775 /var/run/screen

1.3.3 格式转换

l KIWI默认输出的Machine Image仅有开源的RAW/QCOW2格式,VHD格式需要您使用“qemu-img convert”命令转换。命令举例如下:qemu-img convert –O vpc EulerOS-2.5.x86_64-1.0.0.raw EulerOS-2.5.x86_64-1.0.0.vhd

EulerOS V2.0SP5 工具使用指南 1 Machine Image 制作指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 4

Page 8: EulerOS V2.0SP5 工具使用指南

l 当前KIWI不支持输出ZVHD格式的Machine Image。如果需要ZVHD格式,需要FusionCompute提供的qemu-img程序进行转换。命令举例如下:qemu-img convert –O zvhd EulerOS-2.5.x86_64-1.0.0.raw EulerOS-2.5.x86_64-1.0.0.zvhd

EulerOS V2.0SP5 工具使用指南 1 Machine Image 制作指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 5

Page 9: EulerOS V2.0SP5 工具使用指南

2 Mirror-yum 工具使用指导文档

2.1 简介

2.2 安装

2.3 环境配置

2.4 操作说明

2.1 简介Mirror-yum是一款基于EulerOS的数据同步工具,它的主要功能是将UDS中的元数据下载到本地服务器,同时也为OBS维护人员提供将本地服务器数据上传到UDS功能。

说明

l UDS:是Universal Distributed Storage简称,中文解释统一分布式存储。

l OBS:是object storage service简称,中文解释对象存储服务。

l 桶: 桶(Bucket)是对OBS中的一个存储空间的形象称呼,是存储对象的容器。

2.2 安装1. 创建含有yum公共仓库地址的repo文件,利用vi命令在/etc/yum.repos.d/目录配置

EulerOS-base.repo文件添加如下信息:[base]name=EulerOS-2.0SP5 basebaseurl=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/x86_64/enabled=1gpgcheck=1gpgkey=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/RPM-GPG-KEYEulerOS

2. 配置完repo文件需要清空cache中原有的yum源信息,并生成新的yum信息,命令如下:yum clean allyum makecache

3. 生成新的yum源信息后,利用如下命令安装mirror-yum工具:yum install mirror-yum

若打印信息如下,表示mirror-yum软件安装成功:

Resolving Dependencies--> Running transaction check

EulerOS V2.0SP5 工具使用指南 2 Mirror-yum 工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 6

Page 10: EulerOS V2.0SP5 工具使用指南

---> Package mirror-yum.noarch 0:1.0.0-3 will be installed--> Finished Dependency Resolution

Dependencies Resolved

=================================================================== Package Arch Version Repository Size===================================================================Installing: mirror-yum noarch 1.0.0-3 est1 4.8 k

Transaction Summary===================================================================Install 1 Package

Total download size: 4.8 kInstalled size: 2.7 kIs this ok [y/d/N]: yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction Installing : mirror-yum-1.0.0-3.noarch 1/1 Verifying : mirror-yum-1.0.0-3.noarch 1/1

Installed: mirror-yum.noarch 0:1.0.0-3

Complete!

2.3 环境配置Mirror-yum工具依赖于s3fs工具,若需将本地服务器数据上传到UDS,需要用户自行配置IAM用户访问密钥内容到s3fs的默认配置文件/etc/passwd-s3fs和$HOME/.passwd-s3fs。

说明

s3fs默认配置文件的权限推荐设置为600,防止密钥内容被非授权用户访问。将密钥内容存储在配置文件中存在安全风险,建议用户在使用完上传UDS功能之后,便将配置文件给删除。

Mirror-yum工具使用前需要调用一些环境变量,这些变量需用户通过命令直接输入系统,可配置环境变量信息如表 1所示:

表 2-1 环境变量配置

环境变量 注释

export UDS_BKT_NAME= UDS桶名称

export HOST_URL= UDS主机服务地址

export RSYNC_UP_DELETE=1 同步数据到UDS是否删除与本地无关数据

0:否

1:是(默认)

EulerOS V2.0SP5 工具使用指南 2 Mirror-yum 工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 7

Page 11: EulerOS V2.0SP5 工具使用指南

环境变量 注释

export RSYNC_DOWN_DELETE=1 同步数据到本地是否删除与UDS无关数据

0:否

1:是(默认)

export UDS_TMP_MNT=/mnt/uds-mnt 本地挂载点UDS,默认为/mnt/uds-mnt

export UDS_DOWN_SYNC=0 是否同步UDS数据到本地

0:否

1:是(默认)

export UDS_UP_SYNC=1 是否同步本地数据到UDS0:否(默认)

1:是

说明

无任何环境变量输入情况下直接启动mirror-yum工具,默认以镜像同步方式,将华为公共yum仓库中的全部数据同步到本地。

所有环境变量输入系统,且未同步数据时不能断开连接,否则环境配置失效。建议经常同步数据且有固定UDS的用户可将环境变量保存在/etc/profile文件。

2.4 操作说明

2.4.1 下载数据

将UDS数据向本地服务器同步只需配置UDS桶名和UDS主机服务地址信息的环境变量,环境变量配置完成后,启动mirror-yum工具,命令如下:

mirror-yum /home/EulerOS

说明

“/home/EulerOS/”为本地存放数据目录示例,用户可自行配置。

以UDS桶euleros-yum-data为数据源,/home/EulerOS为存放数据目录同步数据示例步骤如下:

1. 配置环境变量,结果打印如下:[root@repo4 ~]# export UDS_BKT_NAME=euleros-yum-data[root@repo4 ~]# export HOST_URL=10.107.193.157:5080

2. 查看UDS桶euleros-yum-data数据,如图2-1所示:

EulerOS V2.0SP5 工具使用指南 2 Mirror-yum 工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 8

Page 12: EulerOS V2.0SP5 工具使用指南

图 2-1 查看桶数据

3. 同步数据,显示打印结果如下,:[root@repo4 ~]# ll /home/EulerOS/total 0[root@repo4 ~]# mirror-yum /home/EulerOS/local repo path is /home/EulerOS/ sending incremental file listtest.ps1717 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2)

sent 801 bytes received 31 bytes 1664.00 bytes/sectotal size is 717 speedup is 0.86sending incremental file list

sent 41 bytes received 12 bytes 106.00 bytes/sectotal size is 717 speedup is 13.53[root@repo4 ~]# ll /home/EulerOS/total 4----------. 1 root root 717 Apr 19 10:25 test.ps1

从上述打印信息可以看出/home/EulerOS/目录在同步数据前为空,同步数据后/home/EulerOS/目录下同euleros-yum-data桶数据相同,表示数据同步成功。

2.4.2 上传数据

将本地服务器数据向UDS同步,需配置UDS桶名、UDS地址、AK和SK等环境变量信息,并且需配置数据同步方向,完成后启动mirror-yum工具,命令如下:

mirror-yum /home/EulerOS

说明

“/home/EulerOS/”为本地存放数据目录示例,用户可自行配置。

以/home/EulerOS目录为数据源,euleros-yum-data桶为数据存放地址同步数据示例步骤如下:

1. 配置环境变量,显示打印结果如下:[root@repo4 ~]# export UDS_AK=AAAAAA #请根据实际情况配置密钥ID

[root@repo4 ~]# export UDS_SK=BBBBBB #请根据实际情况配置密钥

[root@repo4 ~]# export UDS_BKT_NAME=euleros-yum-data[root@repo4 ~]# export HOST_URL=10.107.193.157:5080[root@repo4 ~]# export UDS_DOWN_SYNC=0[root@repo4 ~]# export UDS_UP_SYNC=1

2. 查看UDS桶euleros-yum-data数据,如图2-2所示:

EulerOS V2.0SP5 工具使用指南 2 Mirror-yum 工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 9

Page 13: EulerOS V2.0SP5 工具使用指南

图 2-2 查看桶数据

3. 同步数据,显示打印结果如下:[root@repo4 ~]# ll /home/EulerOS/total 16-rw-------. 1 root root 4 Apr 19 14:25 test1.ps-rw-------. 1 root root 5 Apr 19 14:25 test2.ps-rw-------. 1 root root 8 Apr 19 14:25 test3.ps----------. 1 root root 717 Apr 19 10:25 test.ps1[root@repo4 ~]# mirror-yum /home/EulerOS/local repo path is /home/EulerOS/ sending incremental file listtest.ps1 717 100% 0.00kB/s 0:00:00 (xfer#1, to-check=3/5)test1.ps 4 100% 3.91kB/s 0:00:00 (xfer#2, to-check=2/5)test2.ps 5 100% 4.88kB/s 0:00:00 (xfer#3, to-check=1/5)test3.ps 8 100% 7.81kB/s 0:00:00 (xfer#4, to-check=0/5)

sent 997 bytes received 88 bytes 310.00 bytes/sectotal size is 734 speedup is 0.68sending incremental file list

sent 91 bytes received 12 bytes 206.00 bytes/sectotal size is 734 speedup is 7.13

4. 查看UDS桶euleros-yum-data数据,如图2-3所示:

图 2-3 同步后的桶数据

从上述打印信息和图中可以看到euleros-yum-data桶在同步数据前只有一个文件,同步数据后/euleros-yum-data桶内同/home/EulerOS/目录数据相同,表示数据同步成功。

EulerOS V2.0SP5 工具使用指南 2 Mirror-yum 工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 10

Page 14: EulerOS V2.0SP5 工具使用指南

3 Yum 镜像工具使用指导文档

3.1 简介

3.2 安装

3.3 Mirror-yum-server使用说明

3.4 nginx部署负载均衡

3.1 简介

Yum镜像工具是一款基于EulerOS的镜像仓库部署工具,它的主要功能是将UDS中的repo数据同步到本地服务器,同时在本地服务器配置开启http或https服务,从而对外提供yum仓库服务。

本文还介绍了负载均衡服务器的部署方法,为多台yum仓库服务器提供负载均衡。

说明

l UDS:是Universal Distributed Storage简称,中文解释统一分布式存储。

l OBS:是object storage service简称,中文解释对象存储服务。

l 桶: 桶(Bucket)是对OBS中的一个存储空间的形象称呼,是存储对象的容器。

3.2 安装

1. 创建含有yum公共仓库地址的repo文件,利用vi命令在/etc/yum.repos.d/目录配置EulerOS-base.repo文件添加如下信息:[base]name=EulerOS-2.0SP5 basebaseurl=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/x86_64/enabled=1gpgcheck=1gpgkey=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/RPM-GPG-KEY-EulerOS

2. 配置完repo文件需要清空cache中原有的yum源信息,并生成新的yum信息,命令如下:yum clean allyum makecache

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 11

Page 15: EulerOS V2.0SP5 工具使用指南

3. 生成新的yum源信息后,利用如下命令安装yum镜像工具:yum install mirror-yum-server

若打印信息如下,表示mirror-yum-server软件安装成功:

Resolving Dependencies--> Running transaction check---> Package mirror-yum-server.noarch 0:1.0.0-3 will be installed--> Processing Dependency: mirror-yum for package: mirror-yum-server-1.0.0-3.noarch--> Running transaction check---> Package mirror-yum.noarch 0:1.0.0-3 will be installed--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================== Package Arch Version Repository Size======================================================================================================Installing: mirror-yum-server noarch 1.0.0-3 base 7.9 kInstalling for dependencies: mirror-yum noarch 1.0.0-3 base 4.8 k

Transaction Summary======================================================================================================Install 1 Package (+1 Dependent package)

Total download size: 13 kInstalled size: 8.1 kIs this ok [y/d/N]: yDownloading packages:(1/2): mirror-yum-1.0.0-3.noarch.rpm | 4.8 kB 00:00:00 (2/2): mirror-yum-server-1.0.0-3.noarch.rpm | 7.9 kB 00:00:00 ------------------------------------------------------------------------------------------------------Total 39 kB/s | 13 kB 00:00:00 Running transaction checkRunning transaction testTransaction test succeededRunning transaction Installing : mirror-yum-1.0.0-3.noarch 1/2 Installing : mirror-yum-server-1.0.0-3.noarch 2/2 Verifying : mirror-yum-1.0.0-3.noarch 1/2 Verifying : mirror-yum-server-1.0.0-3.noarch 2/2

Installed: mirror-yum-server.noarch 0:1.0.0-3

Dependency Installed: mirror-yum.noarch 0:1.0.0-3

Complete!

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 12

Page 16: EulerOS V2.0SP5 工具使用指南

3.3 Mirror-yum-server 使用说明Mirror-yum-server使用,具体操作步骤如下:

步骤1 修改mirror-yum-server配置文件:

# UDS bucket nameexport INPUT_UDS_BKT_NAME=euleros-yum

# The entrypoint of UDS serviceexport INPUT_HOST_URL=obs.myhwclouds.com

# Rsync data to yum server with option "--delete"## 0: keep extraneous files when rsync data to yum server# 1: delete extraneous files when rsync data to yum serverexport INPUT_RSYNC_DOWN_DELETE=1

# The port number of yum server for httpexport INPUT_HTTP_PORT=80

# The port number of yum server for httpsexport INPUT_HTTPS_PORT=443

# The switch to enable http service# # 0: disable http service# 1: enable http serviceexport INPUT_HTTP_ENABLE=1

# The switch to enable https service## 0: disable https service# 1: enable https serviceexport INPUT_HTTPS_ENABLE=0

# The absolute path to get the .crt fileexport FILE_CRT=

# The absolute path to get the .key fileexport FILE_KEY=

# The URL of base image, which is used to create docker containerexport BASE_IMAGE_URL=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/x86_64/images/EulerOS-2.x-docker.x86_64-1.0.0.tar.xz

# Loop option on rsync process## 0: Do rsync process once, then stop# 1: Do rsync process circlingexport INPUT_LOOP_OPTION=0

# Loop rate on rsync process## LOW: 24 hours# MID: 6 hours# HIGH: 1 hour export INPUT_LOOP_RATE=HIGH

请用户根据实际情况,根据表 1中的环境变量进行配置:

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 13

Page 17: EulerOS V2.0SP5 工具使用指南

表 3-1 环境变量配置

环境变量名 注释

INPUT_UDS_BKT_NAME 同步数据所在UDS桶的桶名,默认为公共仓库所在UDS桶。

INPUT_HOST_URL 同步数据所在UDS入口地址,默认为公共仓库所在UDS入口地址。

INPUT_RSYNC_DOWN_DELETE 完全同步配置项。

1:同步目录下,删除额外数据,保持与UDS镜像一致。

0:同步目录下仅新增,不删除额外数据。

INPUT_HTTP_PORT 配置HTTP服务在宿主机上的端口号。

INPUT_HTTPS_PORT 配置HTTPS服务在宿主机上的端口号。

INPUT_HTTP_ENABLE HTTP服务使能开关。

0:关闭。

1:开启。

INPUT_HTTPS_ENABLE HTTPS服务使能开关。

0:关闭。

1:开启。

FILE_CRT 证书文件绝对路径,尽在HTTPS服务使能下启用。

FILE_KEY 秘钥文件绝对路径,尽在HTTPS服务使能下启用

BASE_IMAGE_URL 容器基础镜像url。

INPUT_LOOP_OPTION 周期同步配置选项。

0:只同步一次就停止。

1:循环同步。

INPUT_LOOP_RATE 同步周期选项,尽在周期同步配置开启时有效。

LOW:24小时同步一次。

MID:6小时同步一次。

HIGH:1小时同步一次。

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 14

Page 18: EulerOS V2.0SP5 工具使用指南

说明

mirror-yum-server配置文件路径为etc/mirror-yum-server-1.0.0/mirror-yum-server.conf,root用户拥有读写权限,其他用户仅有读权限;配置项缺省状态下指向华为公共yum仓库所在UDS桶,做单次同步。

mirror-yum-server工具利用nginx部署http和https服务。用户如要开启https服务,首先需要提供证书和秘钥文件,在配置文件中指明文件的绝对路径,本工具不提供证书文件,SSL加密协议仅支持TLSv1.1、TLSv1.2。证书和秘钥文件如果出现缺损或不匹配,nginx将无法在容器内正常启动,因此http和https服务也不会开启,容器yum-repo状态将显示为Exited。

步骤2 启动mirror-yum-server服务:

cd /opt/mirror-yum-server-1.1.0/./mirror-yum-server.sh

若显示如下信息,表示mirror-yum-server服务成功完成:

...... //部分打印内容省略Starting yum-dataStarting yum-repoStarting yum-s3fs

Done.

步骤3 成功创建3个容器,通过命令查看容器状态:

docker ps -a

如下显示三个容器中有两容器状态为up,一个容器状态为exited:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEScbd12bd77057 mirroryumserver100_yum_repo "/nginx_root_conf.sh " About a minute ago Up About a minute 0.0.0.0:8086->80/tcp yum-repofe491080e95f mirroryumserver100_s3fs-rsync "/mirror-yum.sh /srv/" About a minute ago Up About a minute 80/tcp yum-s3fsb8e0f5accd70 mirroryumserver100_yum-data-volume "echo 'create a stati" About a minute ago Exited (0) About a minute ago yum-data

l yum-data容器主要作用是提供静态存储卷,存放同步下来的数据,显示状态为exited;

l yum-s3fs容器主要作用是挂载UDS桶,同步桶中数据到容器中;当配置文件中周期同步配置项为使能时,该容器将始终保持up状态,否则,该容器将会在完成一次同步后停止,进入exited状态。

l yum-repo容器按照配置文件中的选项,对外提供http和https服务,指向静态存储卷,始终保持up状态。

步骤4 在容器yum-s3fs同步期间,可通过以下命令查看详情:

docker logs -f yum-s3fs

若显示如下,表示容器yum-s3fs同步数据完毕:

ict/site-euleros/euleros/repo/yum/os/base/2.5/x86_64/Packages/libtasn1-3.8-2.i686.rpm 326372 100% 1.24MB/s 0:00:00 (xfer#2188, to-check=0/2200)ict/site-euleros/euleros/repo/yum/os/base/2.5/x86_64/repodata/

sent 1767487679 bytes received 41628 bytes 3949786.16 bytes/sectotal size is 1767114609 speedup is 1.00sending incremental file list

sent 67781 bytes received 23 bytes 2086.28 bytes/sectotal size is 1767114609 speedup is 26062.10

步骤5 确认repo服务正常访问,如图 1 :

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 15

Page 19: EulerOS V2.0SP5 工具使用指南

图 3-1 确认 repo 服务

说明

本示例为访问http服务,访问地址为:本地服务器IP地址加配置项中的端口地址。

步骤6 重启服务

mirror-yum-server工具支持服务运行中重启,用户如果在重启服务前修改了配置文件,服务重启后会按照配置文件的最新配置加载。

cd /opt/mirror-yum-server-1.1.0/./mirror-yum-server.sh

重启过程如下所示:

[root@repo mirror-yum-server-1.0.0]# ./mirror-yum-server.sh use default repo path.base_image exist.

+--------------------------------------+| Launching mirror-yum-server |+--------------------------------------+Stopping yum-s3fs ... doneStopping yum-repo ... doneStarting yum-dataRecreating yum-s3fsStarting yum-repo

Done.[root@repo2 mirror-yum-server-1.0.0]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES200fe986455b mirroryumserver100_s3fs-rsync "/mirror-yum.sh /srv/" 3 seconds ago Up 2 seconds 80/tcp yum-s3fsff5dcab83ea0 mirroryumserver100_yum_repo "/yum-repo/nginx_root" 2 days ago Up 3 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp yum-repo

说明

https服务支持证书文件重新加载,用户只需将配置文件中证书和秘钥文件的配置路径修改为新证书的绝对路径,再执行上述操作即可。

----结束

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 16

Page 20: EulerOS V2.0SP5 工具使用指南

3.4 nginx 部署负载均衡多台repo服务器形成集群,需要一台反向代理服务器提供负载均衡。该功能由nginx提供。

1. nginx安装和配置

公共repo仓库中包含nginx工具,直接通过yum安装即可,操作如下:

yum install –y nginx

如下显示,表示nginx安装成功:

Resolving Dependencies--> Running transaction check---> Package nginx.x86_64 0:1.8.0-1 will be installed--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================== Package Arch Version Repository Size======================================================================================================Installing: nginx x86_64 1.8.0-1 base 376 k

Transaction Summary======================================================================================================Install 1 Package

Total download size: 376 kInstalled size: 1.1 MDownloading packages:nginx-1.8.0-1.x86_64.rpm | 376 kB 00:00:01 Running transaction checkRunning transaction testTransaction test succeededRunning transaction Installing : nginx-1.8.0-1.x86_64 1/1 Verifying : nginx-1.8.0-1.x86_64 1/1

Installed: nginx.x86_64 0:1.8.0-1

Complete!

2. 配置/etc/nginx/nginx.conf:user root;worker_processes auto; error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;

events { worker_connections 1024;}

http { include /etc/nginx/mime.types; default_type application/octet-stream;

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 17

Page 21: EulerOS V2.0SP5 工具使用指南

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65;

upstream test.repo.com { server 10.250.244.236:8086; #负载均衡指向的repo1,需要用户配置 server 10.250.245.174:8086; #负载均衡指向的repo2,需要用户配置 }

server { listen 80; server_name localhost;

location / { root html; index index.html index.htm; proxy_pass http://test.repo.com; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 100m; } }

}

3. 启动nginx服务nginx

如果服务器已经安装nginx,为确保修改后的nginx配置能够正确导入,可以先尝试关闭nginx后再开启。命令如下

nginx –s stopnginx

图 3-2 web 查看结果

如果nginx正常开启,浏览器却无法访问,请确保服务器80端口已加入iptable,尝试如下操作:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

负载均衡服务器作为repo源的入口服务器,可以直接配置为repo源地址,也可通过web 服务器访问。

EulerOS V2.0SP5 工具使用指南 3 Yum 镜像工具使用指导文档

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 18

Page 22: EulerOS V2.0SP5 工具使用指南

4 libhugetlbfs 使用指导

4.1 简介

4.2 约束限制

4.3 使用说明

4.1 简介当运行内存需求量较大的应用程序时,大页hugetlb利用较大分页页面(2M等)、较少TLB Miss和缺页中断,从而大大提升应用程序的性能。EulerOS目前通过libhugetlbfs提供用户态接口,对目标程序进行大页管理。

4.2 约束限制l 使用非共d享映射时,会自动删除挂载大页目录下对应的文件,页面会在程序退出

时自动释放。

l 使用共享映射时(仅代码段支持共享映射),不会自动删除大页目录对应文件,且程序退出不会自动释放代码段页面,该机制是为了实现多进程实例共享一个代码段功能。使用后,需手动删除大页目录对应文件来释放其余资源。

l 本特性以文件名区分二进制如果使用了代码段共享映射,所以禁止同名的不同程序(或修改了内容的二进制程序)使用共享代码段映射。

l 由于使用libhugetlbfs库作为实现,该库含有的其他大页功能(无关数据段代码段映射的功能)不作说明和技术支撑。

4.3 使用说明

4.3.1 环境配置

产品编译时需添加以下链接参数进行特殊对齐处理:

-Wl,-zcommon-page-size=0x200000-Wl,-zmax-page-size=0x200000-Wl,-Ttext-segment=0x200000

在目标环境上需要设置如下:

EulerOS V2.0SP5 工具使用指南 4 libhugetlbfs 使用指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 19

Page 23: EulerOS V2.0SP5 工具使用指南

1. 配置大页数。echo x > /proc/sys/vm/nr_hugepages

2. EulerOS一般会自动挂载大页于/dev/hugetlbfs/目录之下,可以通过mount | grep huge进行查看;若无挂载,可使用如下命令手动将hugetlbfs挂载于所需要的地点:mount -t hugetlbfs nodev /mnt/hugetlbfs

3. 配置libhugetlbfs环境变量。

– export HUGETLB_ELFMAP='R:W',该项表示数据段代码段(含BSS)都映射为大页。

– export LD_LIBRARY_PATH='./',该项指定libhugetlbfs.so所在目录为当前目录。

4.3.2 接口描述

l nr_hugepages接口

接口位置 /proc/sys/vm/nr_hugepages

功能描述 Linux内核提供的一个配置大页数目的接口

输入格式 echo x > /proc/sys/vm/nr_hugepages其中,x为配置大页数目的数值,取值范围在0 – 0UL

输出格式 cat /proc/sys/vm/nr_hugepages

返回值 1. 成功:返回02. 失败:返回错误码

注意事项 预设置的大页数如果大于系统空闲的大页数,nr_hugepages值等于可找到的空闲大页数。

l HUGETLB_VERBOSE

接口位置 设置于env环境变量中

功能描述 提供libhugetlbfs库相关信息的打印等级,取值范围为1-99,默认为1则不进行打印,若为其他值,则视为默认值1。

输入参数 export HUGETLB_VERBOSE=x其中x取值为1-99

输出参数 NA

返回值 成功:返回0失败:返回错误原因以及错误码

注意事项 使用前若无此参数设置则不会有libhugetlbfs库的相关打印,但基本大页分配功能正常

l HUGETLB_ELFMAP

接口位置 设置于env环境变量中

功能描述 指定将对应的段(数据段、代码段)映射到大页

EulerOS V2.0SP5 工具使用指南 4 libhugetlbfs 使用指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 20

Page 24: EulerOS V2.0SP5 工具使用指南

输入参数 1. export HUGETLB_ELFMAP=’R’Read-only segments仅代码段映射大页。

2. export HUGETLB_ELFMAP=’W’Writable segments仅数据段映射大页。

3. export HUGETLB_ELFMAP=’R:W’ALL segments代码段数据段映射大页。

4. export HUGETLB_ELFMAP=’no’No segments不映射大页。

输出参数 NA

返回值 成功:返回0失败:返回错误原因以及错误码

注意事项 使用前必须在设置该环境变量,若无设置则hugetlb不生效

l HUGETLB_SHARE

接口位置 设置于env环境变量中

功能描述 共享代码段大页(共享同名程序的代码段来节省大页内存的消耗)

输入参数 1. export HUGETLB_SHARE=‘1’开启共享功能,只有只读段会被映射为共享大页,不会自动删除映射的对应文件,需要手动删除。

2. Export HUGETLB_SHARE=’0’0或者其他值,等同于默认没有指定,将使用匿名映射,会自动删除在大页文件系统中的映射的文件。

输出参数 NA

返回值 成功:返回0失败:返回错误原因以及错误码

注意事项 当指定HUGETLB_SHARE为1后运行的同一个程序(仅按名字区分,禁止不同程序使用同样的名字)将根据hugetlbfs文件系统中是否有对应的映射文件来决定是否共用代码段。

4.3.3 使用样例

编译gcc test.c -o test -Wl,-zcommon-page-size=0x200000 -Wl,-zmax-page-size=0x200000 -Wl,-Ttext-segment=0x200000 –lhugetlbfs

运行echo 1024 > /proc/sys/vm/nr_hugepagesexport HUGETLB_VERBOSE=3export HUGETLB_ELFMAP=’R:W’./test

EulerOS V2.0SP5 工具使用指南 4 libhugetlbfs 使用指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 21

Page 25: EulerOS V2.0SP5 工具使用指南

运行起来后的 libhugetlbfs 提示信息hugectl: INFO: HUGETLB_VERBOSE='3'hugectl: INFO: LD_LIBRARY_PATH='/usr/local/lib:/usr/local/lib:'hugectl: INFO: HUGETLB_ELFMAP='R:W'hugectl: WARNING: LD_PRELOAD not appropriate for this map combinationlibhugetlbfs: INFO: Found pagesize 2048 kBlibhugetlbfs: INFO: Parsed kernel version: [4] . [4] . [152]libhugetlbfs: INFO: Feature private_reservations is present in this kernellibhugetlbfs: INFO: Feature noreserve_safe is present in this kernellibhugetlbfs: INFO: Feature map_hugetlb is present in this kernellibhugetlbfs: INFO: Kernel has MAP_PRIVATE reservations. Disabling heap prefaulting.libhugetlbfs: INFO: Kernel supports MAP_HUGETLBlibhugetlbfs: INFO: HUGETLB_SHARE=0, sharing disabledlibhugetlbfs: INFO: HUGETLB_NO_RESERVE=no, reservations enabledlibhugetlbfs: INFO: Segment 0 (phdr 3): 0x200000-0x200ff4 (filesz=0xff4) (prot = 0x5)libhugetlbfs: INFO: Segment 1 (phdr 4): 0x5ffef0-0x600074 (filesz=0x180) (prot = 0x3)libhugetlbfs: INFO: libhugetlbfs version: 2.21libhugetlbfs: INFO: Mapped hugeseg at 0x40000000. Copying 0xff4 bytes and 0 extra bytes from 0x200000...donelibhugetlbfs: INFO: Prepare succeededlibhugetlbfs: INFO: Mapped hugeseg at 0x40000000. Copying 0x180 bytes and 0 extra bytes from 0x5ffef0...donelibhugetlbfs: INFO: Prepare succeeded

查看该大页程序进程相关大页的 smap 信息cat /proc/2018/smaps |grep -i huge|grep -w -v 000200000-00400000 r-xp 00000000 00:17 14924 /mnt/hugefs/libhugetlbfs.tmp.C4niWa (deleted)Private_Hugetlb: 2048 kB00400000-00800000 rw-p 00000000 00:17 14925 /mnt/hugefs/libhugetlbfs.tmp.CyF5Sb (deleted)Private_Hugetlb: 4096 kBb6eda000-b6eea000 r-xp 00000000 00:1c 13925 /usr/lib/libhugetlbfs.sob6eea000-b6ef9000 ---p 00010000 00:1c 13925 /usr/lib/libhugetlbfs.sob6ef9000-b6efa000 r--p 0000f000 00:1c 13925 /usr/lib/libhugetlbfs.sob6efa000-b6efb000 rw-p 00010000 00:1c 13925 /usr/lib/libhugetlbfs.so

EulerOS V2.0SP5 工具使用指南 4 libhugetlbfs 使用指导

文档版本 01 (2019-08-12) 版权所有 © 华为技术有限公司 22