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

Similar documents
Microsoft Word - 新正文.doc

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

API参考

ebook70-21

A9RF716.tmp

05_資源分享-NFS及NIS.doc

Linux操作系统

epub 61-2

Chapter 2

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

目录 1 简介 1 2 配置前提 1 3 配置环境 服务器 软件 1 4 配置指导 组网拓扑 操作步骤 Red Hat Enterprise Linux Server Red Hat Enterprise Lin

AL-MX200 Series

ebook70-13

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

Windows 2000 Server for T100

Pchome

Microsoft Word - linux命令及建议.doc

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

IP505SM_manual_cn.doc

ext-web-auth-wlc.pdf

Microsoft PowerPoint - 03.IPv6_Linux.ppt [相容模式]

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

P4i45GL_GV-R50-CN.p65

Microsoft Word - template.doc

安装 nginx 添加 nginx 源 命令 :rpm -ivh gx.noarch.rpm 安装 nginx 命令 :yum install

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

.. 3 N

untitled

AL-M200 Series

SL2511 SR Plus 操作手冊_單面.doc

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

ebook140-9

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

untitled

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

Bus Hound 5

ebook70-22

QVM330 多阜寬頻路由器

助文档 天翼云镜像使用帮 天翼云镜像使用帮助文档 一 镜像环境说明 1. 操作系统 Ubuntu 位 2. php 运行环境 nginx+ PHP5.4+mysql 镜像软件明细 Mysql5.5 + FTP + PHPmyadmin + zend 二 软件账号和密码 1

スライド 1

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

自由軟體教學平台

Microsoft Word - PS2_linux_guide_cn.doc

QVM330 多阜寬頻路由器

Simulator By SunLingxi 2003

1.ai

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

Oracle 4

ebook140-8

untitled

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

RunPC2_.doc

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

PTS7_Manual.PDF

1

ebook71-8

スライド 1

untitled

未命名 -1

投影片 1

Windows 2000 Server for T100

自由軟體教學平台

安装 Nginx 命令 :yum install -y nginx 接着将 Nginx 设置为开机启动, 输入命令 :chkconfig nginx on Web 默认根目录为 :/usr/share/nginx/html/ 开放 80 端口 :iptables -I INPUT -p tcp --

untitled

untitled

javascript sdk javascript sdk 列出 Bucket 内的对象上传 textarea 内容到 Bucket 上传本地文件生成私有下载链接生成带过期时间的私有链接删除对象下载对象拷贝对象查看文件访问权限设置文件访问权限获取静态网站配置设置静态网站删除静态网站查询对象元数据查询

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

自由軟體教學平台

EC51/52 GSM /GPRS MODEN

1 WLAN 接 入 配 置 本 文 中 的 AP 指 的 是 LA3616 无 线 网 关 1.1 WLAN 接 入 简 介 WLAN 接 入 为 用 户 提 供 接 入 网 络 的 服 务 无 线 服 务 的 骨 干 网 通 常 使 用 有 线 电 缆 作 为 线 路 连 接 安 置 在 固 定

Guide to Install SATA Hard Disks

untitled

K7VT2_QIG_v3

PowerPoint Presentation

Microsoft PowerPoint - ch6 [相容模式]

HLA-B27軟體

WWW PHP

PL600 IPPBX 用户手册_V2.0_.doc

untitled

常见问题

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

一.NETGEAR VPN防火墙产品介绍

untitled

EPSON

简易 Linux Server 部署教程系列之 06 使用 Samba 实现文件共享服务 ( 作者信息 : 阮晓龙投稿时间 :2018 年 5 月 4 日 ) 一 需求描述 1 需求说明支持 Windows Linux Unix Mac 等操作系统支持 Android ios 等移动平台支持计算机

Web


untitled

Sun Update Connection System Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A

Tel: Fax: TTP-344M/246M /

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

CCNA 3 Module 5 Switching Concepts

untitled

1 1 大概思路 Nginx 集群之 SSL 证书的 WebApi 微服务 HTTP 与 HTTPS(SSL 协议 ) Openssl 生成 SSL 证书 编写.NET WebApi 部署 WebApi 到局域网内 3 台 PC 机 Nginx 集群配置搭建 运行结果 总结 2 Nginx 集群之

目录 1 IPv6 PIM Snooping 配置命令 IPv6 PIM Snooping 配置命令 display pim-snooping ipv6 neighbor display pim-snooping ipv6 routing-ta

Transcription:

文档版本 01 发布日期 2019-08-12 华为技术有限公司

版权所有 华为技术有限公司 2019 保留一切权利 非经本公司书面许可, 任何单位和个人不得擅自摘抄 复制本文档内容的部分或全部, 并不得以任何形式传播 商标声明 和其他华为商标均为华为技术有限公司的商标 本文档提及的其他所有商标或注册商标, 由各自的所有人拥有 注意 您购买的产品 服务或特性等应受华为公司商业合同和条款的约束, 本文档中描述的全部或部分产品 服务或特性可能不在您的购买或使用范围之内 除非合同另有约定, 华为公司对本文档内容不做任何明示或默示的声明或保证 由于产品版本升级或其他原因, 本文档内容会不定期进行更新 除非另有约定, 本文档仅作为使用指导, 本文档中的所有陈述 信息和建议不构成任何明示或暗示的担保 华为技术有限公司 地址 : 深圳市龙岗区坂田华为总部办公楼邮编 :518129 网址 : http://www.huawei.com 客户服务邮箱 : support@huawei.com 客户服务电话 : 4008302118 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 i

目录 目录 1 Machine Image 制作指导...1 1.1 安装 KIWI...1 1.1.1 版本要求... 1 1.1.2 安装 KIWI 及模板...1 1.2 修改配置... 1 1.2.1 EulerOS KIWI 模板... 1 1.2.2 EulerOS KIWI 配置... 2 1.3 制作 Machine Image... 3 1.3.1 使用命令制作 Machine Image... 3 1.3.2 镜像文件... 4 1.3.3 格式转换... 4 2 Mirror-yum 工具使用指导文档... 6 2.1 简介... 6 2.2 安装... 6 2.3 环境配置... 7 2.4 操作... 8 2.4.1 下载数据... 8 2.4.2 上传数据... 9 3 Yum 镜像工具使用指导文档... 11 3.1 简介... 11 3.2 安装... 11 3.3 Mirror-yum-server 使用... 13 3.4 nginx 部署负载均衡... 17 4 libhugetlbfs 使用指导... 19 4.1 简介... 19 4.2 约束限制... 19 4.3 使用... 19 4.3.1 环境配置... 19 4.3.2 接口描述... 20 4.3.3 使用样例... 21 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 ii

1 Machine Image 制作指导 1 Machine Image 制作指导 1.1 安装 KIWI 1.2 修改配置 1.3 制作 Machine Image 1.1 安装 KIWI 1.1.1 版本要求 1.1.2 安装 KIWI 及模板 1.2 修改配置 各个发行版集成 KIWI 的版本不同, 因而各个版本的 KIWI 的特性功能有所差异 这里制作 EulerOS Machine Image 要求 KIWI 的版本为 :7.04.21 配置 yum repo, 参考 EulerOS 官方 repo 配置 : http://developer.huawei.com/ict/en/site-euleros/article/yum 通过命令, 安装 EulerOS kiwi 模板包 ( 会自动安装 kiwi 工具包 ): yum install -y kiwi-template-euleros 1.2.1 EulerOS KIWI 模板 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 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 1

1 Machine Image 制作指导 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 修改配置文件请参考 kiwi 官方配置文件 : 1.2.2 EulerOS KIWI 配置 https://doc.opensuse.org/projects/kiwi/doc/ 步骤 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> 可以直接明文设置密码, 示例如下 : <users group="root"> <user password="huawei@sys3" pwdformat="plain" home="/root" name="root"/> </users> Huawei@SYS3 表示设置的明文密码 明文密码会有密码泄露的风险, 请用户谨慎操作 也可以设置密文, 示例如下 : 请先使用 useradd / passwd 命令生成密文 HGH1000041148:~ # useradd test HGH1000041148:~ # passwd test Changing 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" 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 2

1 Machine Image 制作指导 <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 配置文件中, 修改或添加 <repository type='rpm-md'>repo-url</repository> 段, 且该配置文件中至少需要定义一个 <repository type='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 --set-repo, 可以是 yum 源, 也可以是 iso -d 参数, 指定制作目录 --add-repo, 使用该参数添加多个 repo 源 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 3

1 Machine Image 制作指导 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 目录 qcow2 格式镜像 :EulerOS-2.5.x86_64-1.0.0.qcow2 raw 格式镜像 : EulerOS-2.5.x86_64-1.0.0.raw 其他输出文件均可不用关注 需要其他格式镜像请使用 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. failed Apr-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/screen chmod 775 /var/run/screen 1.3.3 格式转换 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 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 4

1 Machine Image 制作指导 当前 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 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 5

2 Mirror-yum 工具使用指导文档 2 Mirror-yum 工具使用指导文档 2.1 简介 2.2 安装 2.3 环境配置 2.4 操作 2.1 简介 Mirror-yum 是一款基于 EulerOS 的数据同步工具, 它的主要功能是将 UDS 中的元数据下载到本地服务器, 同时也为 OBS 维护人员提供将本地服务器数据上传到 UDS 功能 UDS: 是 Universal Distributed Storage 简称, 中文解释统一分布式存储 OBS: 是 object storage service 简称, 中文解释对象存储服务 桶 : 桶 (Bucket) 是对 OBS 中的一个存储空间的形象称呼, 是存储对象的容器 2.2 安装 1. 创建含有 yum 公共仓库地址的 repo 文件, 利用 vi 命令在 /etc/yum.repos.d/ 目录配置 EulerOS-base.repo 文件添加如下信息 : [base] name=euleros-2.0sp5 base baseurl=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/x86_64/ enabled=1 gpgcheck=1 gpgkey=http://developer.huawei.com/ict/site-euleros/euleros/repo/yum/2.x/os/rpm-gpg- KEYEulerOS 2. 配置完 repo 文件需要清空 cache 中原有的 yum 源信息, 并生成新的 yum 信息, 命令如下 : yum clean all yum makecache 3. 生成新的 yum 源信息后, 利用如下命令安装 mirror-yum 工具 : yum install mirror-yum 若打印信息如下, 表示 mirror-yum 软件安装成功 : Resolving Dependencies --> Running transaction check 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 6

2 Mirror-yum 工具使用指导文档 ---> 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 k Installed size: 2.7 k Is this ok [y/d/n]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mirroryum-1.0.0-3.noarch 1/1 Verifying : mirroryum-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/.passwds3fs s3fs 默认配置文件的权限推荐设置为 600, 防止密钥内容被非授权用户访问 将密钥内容存储在配置文件中存在安全风险, 建议用户在使用完上传 UDS 功能之后, 便将配置文件给删除 Mirror-yum 工具使用前需要调用一些环境变量, 这些变量需用户通过命令直接输入系统, 可配置环境变量信息如表 1 所示 : 表 2-1 环境变量配置 环境变量 export UDS_BKT_NAME= export HOST_URL= export RSYNC_UP_DELETE=1 注释 UDS 桶名称 UDS 主机服务地址 同步数据到 UDS 是否删除与本地无关数据 0: 否 1: 是 ( 默认 ) 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 7

2 Mirror-yum 工具使用指导文档 环境变量 export RSYNC_DOWN_DELETE=1 export UDS_TMP_MNT=/mnt/uds-mnt export UDS_DOWN_SYNC=0 export UDS_UP_SYNC=1 注释 同步数据到本地是否删除与 UDS 无关数据 0: 否 1: 是 ( 默认 ) 本地挂载点 UDS, 默认为 /mnt/uds-mnt 是否同步 UDS 数据到本地 0: 否 1: 是 ( 默认 ) 是否同步本地数据到 UDS 0: 否 ( 默认 ) 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 所示 : 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 8

2 Mirror-yum 工具使用指导文档 图 2-1 查看桶数据 2.4.2 上传数据 3. 同步数据, 显示打印结果如下,: [root@repo4 ~]# ll /home/euleros/ total 0 [root@repo4 ~]# mirror-yum /home/euleros/ local repo path is /home/euleros/ sending incremental file list test.ps1 717 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2) sent 801 bytes received 31 bytes 1664.00 bytes/sec total size is 717 speedup is 0.86 sending incremental file list sent 41 bytes received 12 bytes 106.00 bytes/sec total 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 桶数据相同, 表示数据同步成功 将本地服务器数据向 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 所示 : 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 9

2 Mirror-yum 工具使用指导文档 图 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 list test.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/sec total size is 734 speedup is 0.68 sending incremental file list sent 91 bytes received 12 bytes 206.00 bytes/sec total size is 734 speedup is 7.13 4. 查看 UDS 桶 euleros-yum-data 数据, 如图 2-3 所示 : 图 2-3 同步后的桶数据 从上述打印信息和图中可以看到 euleros-yum-data 桶在同步数据前只有一个文件, 同步数据后 /euleros-yum-data 桶内同 /home/euleros/ 目录数据相同, 表示数据同步成功 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 10

3 Yum 镜像工具使用指导文档 3 Yum 镜像工具使用指导文档 3.1 简介 3.2 安装 3.3 Mirror-yum-server 使用 3.4 nginx 部署负载均衡 3.1 简介 Yum 镜像工具是一款基于 EulerOS 的镜像仓库部署工具, 它的主要功能是将 UDS 中的 repo 数据同步到本地服务器, 同时在本地服务器配置开启 http 或 https 服务, 从而对外提供 yum 仓库服务 本文还介绍了负载均衡服务器的部署方法, 为多台 yum 仓库服务器提供负载均衡 UDS: 是 Universal Distributed Storage 简称, 中文解释统一分布式存储 OBS: 是 object storage service 简称, 中文解释对象存储服务 桶 : 桶 (Bucket) 是对 OBS 中的一个存储空间的形象称呼, 是存储对象的容器 3.2 安装 1. 创建含有 yum 公共仓库地址的 repo 文件, 利用 vi 命令在 /etc/yum.repos.d/ 目录配置 EulerOS-base.repo 文件添加如下信息 : [base] name=euleros-2.0sp5 base baseurl=http://developer.huawei.com/ict/site-euleros/euleros/ repo/yum/2.x/os/x86_64/ enabled=1 gpgcheck=1 gpgkey=http://developer.huawei.com/ict/site-euleros/euleros/ repo/yum/2.x/os/rpm-gpg-key-euleros 2. 配置完 repo 文件需要清空 cache 中原有的 yum 源信息, 并生成新的 yum 信息, 命令如下 : yum clean all yum makecache 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 11

3 Yum 镜像工具使用指导文档 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 k Installing 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 k Installed size: 8.1 k Is this ok [y/d/n]: y Downloading 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 check Running transaction test Transaction test succeeded Running transaction Installing : mirroryum-1.0.0-3.noarch 1/2 Installing : mirror-yumserver-1.0.0-3.noarch 2/2 Verifying : mirroryum-1.0.0-3.noarch 1/2 Verifying : mirror-yumserver-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! 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 12

3 Yum 镜像工具使用指导文档 3.3 Mirror-yum-server 使用 Mirror-yum-server 使用, 具体操作步骤如下 : 步骤 1 修改 mirror-yum-server 配置文件 : # UDS bucket name export INPUT_UDS_BKT_NAME=euleros-yum # The entrypoint of UDS service export 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 server export INPUT_RSYNC_DOWN_DELETE=1 # The port number of yum server for http export INPUT_HTTP_PORT=80 # The port number of yum server for https export INPUT_HTTPS_PORT=443 # The switch to enable http service # # 0: disable http service # 1: enable http service export INPUT_HTTP_ENABLE=1 # The switch to enable https service # # 0: disable https service # 1: enable https service export INPUT_HTTPS_ENABLE=0 # The absolute path to get the.crt file export FILE_CRT= # The absolute path to get the.key file export FILE_KEY= # The URL of base image, which is used to create docker container export 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 circling export INPUT_LOOP_OPTION=0 # Loop rate on rsync process # # LOW: 24 hours # MID: 6 hours # HIGH: 1 hour export INPUT_LOOP_RATE=HIGH 请用户根据实际情况, 根据表 1 中的环境变量进行配置 : 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 13

3 Yum 镜像工具使用指导文档 表 3-1 环境变量配置 环境变量名 INPUT_UDS_BKT_NAME INPUT_HOST_URL INPUT_RSYNC_DOWN_DELETE INPUT_HTTP_PORT INPUT_HTTPS_PORT INPUT_HTTP_ENABLE INPUT_HTTPS_ENABLE FILE_CRT FILE_KEY 注释 同步数据所在 UDS 桶的桶名, 默认为公共仓库所在 UDS 桶 同步数据所在 UDS 入口地址, 默认为公共仓库所在 UDS 入口地址 完全同步配置项 1: 同步目录下, 删除额外数据, 保持与 UDS 镜像一致 0: 同步目录下仅新增, 不删除额外数据 配置 HTTP 服务在宿主机上的端口号 配置 HTTPS 服务在宿主机上的端口号 HTTP 服务使能开关 0: 关闭 1: 开启 HTTPS 服务使能开关 0: 关闭 1: 开启 证书文件绝对路径, 尽在 HTTPS 服务使能下启用 秘钥文件绝对路径, 尽在 HTTPS 服务使能下启用 BASE_IMAGE_URL 容器基础镜像 url INPUT_LOOP_OPTION INPUT_LOOP_RATE 周期同步配置选项 0: 只同步一次就停止 1: 循环同步 同步周期选项, 尽在周期同步配置开启时有效 LOW:24 小时同步一次 MID:6 小时同步一次 HIGH:1 小时同步一次 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 14

3 Yum 镜像工具使用指导文档 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-data Starting yum-repo Starting yum-s3fs Done. 步骤 3 成功创建 3 个容器, 通过命令查看容器状态 : docker ps -a 如下显示三个容器中有两容器状态为 up, 一个容器状态为 exited: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cbd12bd77057 mirroryumserver100_yum_repo "/nginx_root_conf.sh " About a minute ago Up About a minute 0.0.0.0:8086->80/tcp yum-repo fe491080e95f mirroryumserver100_s3fs-rsync "/mirror-yum.sh /srv/" About a minute ago Up About a minute 80/tcp yum-s3fs b8e0f5accd70 mirroryumserver100_yum-data-volume "echo 'create a stati" About a minute ago Exited (0) About a minute ago yum-data yum-data 容器主要作用是提供静态存储卷, 存放同步下来的数据, 显示状态为 exited; yum-s3fs 容器主要作用是挂载 UDS 桶, 同步桶中数据到容器中 ; 当配置文件中周期同步配置项为使能时, 该容器将始终保持 up 状态, 否则, 该容器将会在完成一次同步后停止, 进入 exited 状态 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/sec total size is 1767114609 speedup is 1.00 sending incremental file list sent 67781 bytes received 23 bytes 2086.28 bytes/sec total size is 1767114609 speedup is 26062.10 步骤 5 确认 repo 服务正常访问, 如图 1 : 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 15

3 Yum 镜像工具使用指导文档 图 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... done Stopping yum-repo... done Starting yum-data Recreating yum-s3fs Starting yum-repo Done. [root@repo2 mirror-yum-server-1.0.0]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 200fe986455b mirroryumserver100_s3fs-rsync "/mirror-yum.sh /srv/" 3 seconds ago Up 2 seconds 80/tcp yum-s3fs ff5dcab83ea0 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 服务支持证书文件重新加载, 用户只需将配置文件中证书和秘钥文件的配置路径修改为新证书的绝对路径, 再执行上述操作即可 ---- 结束 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 16

3 Yum 镜像工具使用指导文档 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 k Installed size: 1.1 M Downloading packages: nginx-1.8.0-1.x86_64.rpm 376 kb 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running 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; 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 17

3 Yum 镜像工具使用指导文档 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; server 10.250.245.174:8086; } # 负载均衡指向的 repo1, 需要用户配置 # 负载均衡指向的 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 stop nginx 图 3-2 web 查看结果 如果 nginx 正常开启, 浏览器却无法访问, 请确保服务器 80 端口已加入 iptable, 尝试如下操作 : iptables -I INPUT -p tcp --dport 80 -j ACCEPT 负载均衡服务器作为 repo 源的入口服务器, 可以直接配置为 repo 源地址, 也可通过 web 服务器访问 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 18

4 libhugetlbfs 使用指导 4 libhugetlbfs 使用指导 4.1 简介 4.2 约束限制 4.3 使用 4.1 简介 当运行内存需求量较大的应用程序时, 大页 hugetlb 利用较大分页页面 (2M 等 ) 较少 TLB Miss 和缺页中断, 从而大大提升应用程序的性能 EulerOS 目前通过 libhugetlbfs 提供用户态接口, 对目标程序进行大页管理 4.2 约束限制 使用非共 d 享映射时, 会自动删除挂载大页目录下对应的文件, 页面会在程序退出时自动释放 使用共享映射时 ( 仅代码段支持共享映射 ), 不会自动删除大页目录对应文件, 且程序退出不会自动释放代码段页面, 该机制是为了实现多进程实例共享一个代码段功能 使用后, 需手动删除大页目录对应文件来释放其余资源 本特性以文件名区分二进制如果使用了代码段共享映射, 所以禁止同名的不同程序 ( 或修改了内容的二进制程序 ) 使用共享代码段映射 由于使用 libhugetlbfs 库作为实现, 该库含有的其他大页功能 ( 无关数据段代码段映射的功能 ) 不作和技术支撑 4.3 使用 4.3.1 环境配置 产品编译时需添加以下链接参数进行特殊对齐处理 : -Wl,-zcommon-page-size=0x200000 -Wl,-zmax-page-size=0x200000 -Wl,-Ttext-segment=0x200000 在目标环境上需要设置如下 : 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 19

4 libhugetlbfs 使用指导 4.3.2 接口描述 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 所在目录为当前目录 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. 成功 : 返回 0 2. 失败 : 返回错误码 注意事项 预设置的大页数如果大于系统空闲的大页数,nr_hugepages 值等于可找到的空闲大页数 HUGETLB_VERBOSE 接口位置功能描述输入参数输出参数 设置于 env 环境变量中 提供 libhugetlbfs 库相关信息的打印等级, 取值范围为 1-99, 默认为 1 则不进行打印, 若为其他值, 则视为默认值 1 export HUGETLB_VERBOSE=x 其中 x 取值为 1-99 NA 返回值成功 : 返回 0 失败 : 返回错误原因以及错误码 注意事项 使用前若无此参数设置则不会有 libhugetlbfs 库的相关打印, 但基本大页分配功能正常 HUGETLB_ELFMAP 接口位置 功能描述 设置于 env 环境变量中 指定将对应的段 ( 数据段 代码段 ) 映射到大页 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 20

4 libhugetlbfs 使用指导 输入参数 输出参数 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 不生效 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,-Ttextsegment=0x200000 lhugetlbfs echo 1024 > /proc/sys/vm/nr_hugepages export HUGETLB_VERBOSE=3 export HUGETLB_ELFMAP= R:W./test 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 21

4 libhugetlbfs 使用指导 运行起来后的 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 combination libhugetlbfs: INFO: Found pagesize 2048 kb libhugetlbfs: INFO: Parsed kernel version: [4]. [4]. [152] libhugetlbfs: INFO: Feature private_reservations is present in this kernel libhugetlbfs: INFO: Feature noreserve_safe is present in this kernel libhugetlbfs: INFO: Feature map_hugetlb is present in this kernel libhugetlbfs: INFO: Kernel has MAP_PRIVATE reservations. Disabling heap prefaulting. libhugetlbfs: INFO: Kernel supports MAP_HUGETLB libhugetlbfs: INFO: HUGETLB_SHARE=0, sharing disabled libhugetlbfs: INFO: HUGETLB_NO_RESERVE=no, reservations enabled libhugetlbfs: 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.21 libhugetlbfs: INFO: Mapped hugeseg at 0x40000000. Copying 0xff4 bytes and 0 extra bytes from 0x200000...done libhugetlbfs: INFO: Prepare succeeded libhugetlbfs: INFO: Mapped hugeseg at 0x40000000. Copying 0x180 bytes and 0 extra bytes from 0x5ffef0...done libhugetlbfs: INFO: Prepare succeeded 查看该大页程序进程相关大页的 smap 信息 cat /proc/2018/smaps grep -i huge grep -w -v 0 00200000-00400000 r-xp 00000000 00:17 14924 /mnt/hugefs/libhugetlbfs.tmp.c4niwa (deleted) Private_Hugetlb: 2048 kb 00400000-00800000 rw-p 00000000 00:17 14925 /mnt/hugefs/libhugetlbfs.tmp.cyf5sb (deleted) Private_Hugetlb: 4096 kb b6eda000-b6eea000 r-xp 00000000 00:1c 13925 /usr/lib/libhugetlbfs.so b6eea000-b6ef9000 ---p 00010000 00:1c 13925 /usr/lib/libhugetlbfs.so b6ef9000-b6efa000 r--p 0000f000 00:1c 13925 /usr/lib/libhugetlbfs.so b6efa000-b6efb000 rw-p 00010000 00:1c 13925 /usr/lib/libhugetlbfs.so 文档版本 01 (2019-08-12) 版权所有 华为技术有限公司 22