华为云用户手册

  • 工具概述 x2hce-ca是华为云对系统迁移提供的一款免费的应用兼容性评估工具。x2hce-ca通过对待迁移应用进行快速扫描分析,帮助您评估应用在源操作系统和目标操作系统的兼容性。 表1 支持兼容性评估的x86公共镜像 OS发行系列 源操作系统 目标操作系统 HCE 64bit:Huawei Cloud EulerOS:1.1 Huawei Cloud EulerOS 2.0 标准版 64位 EulerOS 64bit:EulerOS:2.10/2.9/2.8/2.5/2.3/2.2 Huawei Cloud EulerOS 2.0 标准版 64位 CentOS 64bit:CentOS 7:7.9/7.8/7.7/7.6/7.5/7.4/7.3/7.2/7.1/7.0 64bit:CentOS 8:8.3/8.2/8.1/8.0 Huawei Cloud EulerOS 2.0 标准版 64位 64bit:CentOS 7:7.9/7.6 Huawei Cloud EulerOS 1.1 CentOS兼容版 表2 支持兼容性评估的Arm公共镜像 OS发行系列 源操作系统 目标操作系统 EulerOS 64bit:EulerOS:2.10/2.9/2.8 Huawei Cloud EulerOS 2.0 标准版 64位 Arm版 父主题: x2hce-ca应用兼容性评估
  • 切换须知 切换操作系统后,将不再保留原操作系统,并删除原有系统盘及清除系统盘数据,包括系统盘上的系统分区和所有其它分区,请做好数据备份。详细内容,请参考备份弹性云服务器。 切换操作系统不影响数据盘数据。 切换操作系统后IP地址和MAC地址不发生改变。 切换操作系统成功后会自动开机。 切换操作系统后不支持更换系统盘的云硬盘类型。 切换操作系统后,您的业务运行环境需要在新的系统中重新部署。 切换操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)将被重置,需重新配置。 重新配置云服务器DNS信息请参考:怎样配置弹性云服务器的DNS和NTP信息? 重新配置主机名请参考:怎样使修改的静态主机名永久生效?
  • 升级概述 HCE提供操作系统和RPM包的更新维护,包括部署在HCE上的RPM包、安全更新涉及的RPM包和漏洞修复。为了操作系统和RPM包的使用更加安全,请及时升级。 HCE支持使用dnf/yum命令和OSMT工具两种升级方式。 Linux自身支持dnf/yum命令,可对RPM包进行升级和回退,升级操作简单。 OSMT是华为云提供的对HCE系统及RPM包升级和回退的工具,可自定义升级范围和定时检查、延迟重启。 两种升级方式区别如下。 表1 升级方式区别 项目 使用dnf或yum命令升级 使用OSMT工具升级 RPM包升级 支持无差别升级所有待更新的RPM包,包括安全更新涉及的RPM包和漏洞修复。 支持仅升级安全更新涉及的RPM包。 支持无差别升级所有待更新的RPM包,包括安全更新涉及的RPM包和漏洞修复。 支持自定义升级范围: 升级不需要重启的RPM包。 升级需要重启的RPM包。 升级自定义黑白名或白名单列表中的RPM包。 升级安全更新涉及的RPM包。 漏洞修复。 升级新增功能的RPM包。 更新新增的RPM包。 支持自定义时间自动更新RPM包、延迟重启。 系统版本升级 不支持系统版本升级 支持HCE 2.0及以上版本的升级 支持升级的版本 支持HCE 1.1及以上版本的RPM包升级。 支持HCE 2.0及以上版本的RPM包升级。 回退 支持回退所有历史操作。 系统或RPM包仅支持最近一次升级的回退。 父主题: 更新HCE系统和RPM包
  • 前提条件 待切换操作系统的挂载有系统盘。 如果原服务器使用的是密码登录方式,切换操作系统后使用密钥登录方式,请提前创建密钥文件。 如果您使用私有镜像切换操作系统请参考《 镜像服务 用户指南》提前完成私有镜像的制作。 如果需要指定云服务器的镜像,请提前使用指定云服务器创建私有镜像。 如果需要使用本地的镜像文件,请提前将镜像文件导入并注册为云平台的私有镜像。 如果需要使用其他区域的私有镜像,请提前复制镜像。 如果需要使用其他账号的私有镜像,请提前完成镜像共享。
  • 版本回退 请根据是否需要立刻重启,选择合适的回退方式。 回退至原系统,不立刻重启。 osmt rollback 回退至原系统并立刻重启。使用此方式,请忽略步骤2。 osmt rollback --reboot_config always 执行reboot命令重启系统。 必须重启系统才能回退到HCE的原系统版本。 检查是否回退成功。 可执行cat /etc/hce-latest查看hceversion字段,若此字段中版本部分是升级前的版本号,表示已回退成功。
  • 版本升级 确认repo源配置正常。 请检查默认的/etc/yum.repos.d/hce.repo配置文件中参数是否正确,正确的配置如下。 [base]name=HCE $releasever basebaseurl=https://repo.huaweicloud.com/hce/$releasever/os/$basearch/enabled=1gpgcheck=1gpgkey=https://repo.huaweicloud.com/hce/$releasever/os/RPM-GPG-KEY-HCE-2[updates]name=HCE $releasever updatesbaseurl=https://repo.huaweicloud.com/hce/$releasever/updates/$basearch/...... 错误的配置内容可能会导致OSMT升级失败,或非预期的升级行为。 更新OSMT软件版本。 OSMT软件版本和HCE版本存在配套关系。HCE默认安装当前系统的OSMT工具,系统升级时,需要将OSMT更新至目标系统版本对应的OSMT版本。 执行dnf update osmt -y --releasever [系统目标版本号] 更新OSMT。例如,将HCE 2.0升级到HCE 2.1,则执行dnf update osmt -y --releasever 2.1命令更新OSMT到最新版本。 若误将OSMT删除,执行dnf install osmt -y --releasever [系统目标版本号] 进行安装。例如,将系统升级至HCE 2.1,则执行dnf install osmt -y --releasever 2.1命令安装OSMT最新版本。 升级HCE系统版本。 osmt update --releasever [系统目标版本号] --reboot_config [重启配置] 请根据是否需要立刻重启,选择合适的升级方式。更多的升级选项,详见osmt update -h。 将HCE 2.0升级到目标版本,如HCE 2.1。 osmt update --releasever 2.1 升级后,须执行reboot命令重启系统,目标系统版本才能生效。 将HCE 2.0升级到目标版本,如HCE 2.1,并立刻重启。 osmt update --releasever 2.1 --reboot_config always 将HCE 2.0升级到目标版本,如HCE 2.1,并指定重启时间,如“2022-12-30 23:00:00”。 osmt update --releasever 2.1 --reboot_config "2022-12-30 23:00:00" 重启完成后,检查是否升级成功。 执行cat /etc/hce-latest查看hceversion字段,若此字段中版本部分是--releasever指定的版本号,表示升级成功。 (可选)删除升级备份文件。 确认升级后功能正常后,执行osmt remove删除备份文件。 请确认升级无异常后再执行osmt remove。执行osmt remove将删除所有升级备份数据,执行后无法再执行回退。
  • 使用镜像归档文件启动容器 确认repo源配置正常。 请检查默认的/etc/yum.repos.d/hce.repo配置文件中参数是否正确,正确的配置如下。 [base]name=HCE $releasever basebaseurl=https://repo.huaweicloud.com/hce/$releasever/os/$basearch/enabled=1gpgcheck=1gpgkey=https://repo.huaweicloud.com/hce/$releasever/os/RPM-GPG-KEY-HCE-2[updates]name=HCE $releasever updatesbaseurl=https://repo.huaweicloud.com/hce/$releasever/updates/$basearch/...... 安装docker软件包。 yum install docker -y 使用镜像归档文件创建容器镜像。 mv /tmp/docker_rootfs/hce-docker.x86_64.tar.xz .docker import hce-docker.x86_64.tar.xz 执行docker images命令可查看到容器镜像ID为6cfefae3a541。 创建镜像可使用如下命令指定镜像的REPOSITORY和TAG参数。 docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] 在容器中运行镜像bash文件。 运行如下命令后,如果shell视图改变,表示成功进入容器bash。 docker run -it 6cfefae3a541 bash
  • 系统回退 系统回退。 迁移操作支持系统回退,您可根据需要决定是否回退至原操作系统。 执行centos2hce2.py --rollback all命令进行系统回退。回退后,执行reboot命令对系统重启。 执行centos2hce2.py --precommit rollback命令,恢复环境。 (可选)若迁移前已开启selinux,迁移时会自动关闭selinux服务。如有需要,回退后请手动恢复selinux状态。 执行centos2hce2.py --precommit rbk-selinux命令。 [root@localhost ~]# centos2hce2.py --precommit rbk-selinux2022-09-05 03:58:37,015-INFO-centos2hce2.py-[line:1401]: precommit migration2022-09-05 03:58:37,047-INFO-centos2hce2.py-[line:1319]: now begin to set selinux2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1324]: modify selinux config succeed2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1325]: selinux has been set, please reboot now2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1340]: set rollback selinux succeed2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1365]: upgrade precommit selinux success 执行reboot命令,进行系统重启。 [root@localhost ~]# reboot 系统重启后,可查看到selinux状态为开启状态。 [root@localhost ~]# getenforceEnforcing 清理系统数据。 执行centos2hce2.py --commit all命令清理数据。 执行命令后,系统会自动清理目标系统和原系统的系统数据,包括步骤3中备份路径下的系统数据。 [root@localhost ~]# centos2hce2.py --commit all2022-08-22 04:45:32,601-INFO-centos2hce2.py-[line:1242]: commit migration
  • 迁移系统至HCE 执行迁移命令centos2hce2.py --upgrade all 进行系统迁移。 出现migrare sucess提示信息,表明系统迁移成功。迁移后支持回退至原系统,详见操作步骤1。 迁移命令不能设置为Linux后台执行方式。 可附加--simple_name参数,使得迁移后的grub菜单中显示Huawei Cloud EulerOS的简称。 在升级过程中如果遇到因为网络中断、软件包冲突等情况导致的升级失败,可以通过重新执行迁移命令再次进行系统迁移。 在升级过程中如果遇到报错如图1所示,表明升级过程因冲突包中断,需要处理冲突包后再次执行升级。冲突包处理请参见冲突包列表。 图1 冲突包报错 系统迁移完毕后,执行reboot命令(若reboot无响应,执行reboot -f)使系统完成切换。 系统重启后,执行cat /etc/hce-release命令查看迁移后的操作系统信息,执行uname -a命令查看系统内核信息。 若显示Huawei Cloud EulerOS操作系统,则迁移成功;否则迁移失败,请联系技术工程师咨询。 操作系统迁移为Huawei Cloud EulerOS后,控制台仍然显示迁移前的操作系统名称。您可手动更新控制台操作系统名称,具体操作详见迁移系统后,如何更改控制台操作系统名称?。 清理旧版本组件的文件。 待迁移系统迁移到HCE后,新版本组件替换旧版本组件,但此时旧版本组件的文件仍然保存在系统中。执行命令centos2hce2.py --precommit upgrade可清理旧版本组件的文件。 返回信息中提示“upgrade precommit success”表示环境清理成功。 清理动作可执行多次。 (可选)修改Cloud-init相关配置。 若迁移之前的操作系统中存在Cloud-init,服务状态正常,且Cloud-init为rpm包形式,请跳过此步骤。 若迁移之前的操作系统存在Cloud-init服务,服务状态正常,且Cloud-init为某个文件(如CentOS 7系列),非rpm包形式,迁移后请对/etc/cloud/cloud.cfg文件进行如下配置。 设置开放root密码远程登录并开启root用户的ssh权限。 设置“disable_root”为“0”不禁用root用户;“ssh_pwauth”为“1”启用密码远程登录;“lock_passwd”为“False”不锁住用户密码。 users: - name: root lock_passwd: Falsedisable_root: 0ssh_pwauth: 1 执行/usr/bin/cloud-init init --local命令,无错误发生,说明Cloud-init配置成功。 正确安装的Cloud-init会显示Cloud-init的版本详细信息,并且无任何错误信息。 如果在升级完成后出现cloud-init不可用的情况,需要重新安装cloud-init软件,具体操作参照安装Cloud-Init工具。 (可选)因迁移时会自动关闭selinux服务,如迁移后需启用selinux,执行centos2hce2.py --precommit upg-selinux命令。此命令分为两个阶段,每次执行后都需重启系统(若迁移前未开启selinux请忽略此步骤)。 执行centos2hce2.py --precommit upg-selinux命令。 [root@localhost ~]# centos2hce2.py --precommit upg-selinux2022-08-21 23:46:23,891-INFO-centos2hce2.py-[line:1239]: precommit migration2022-08-21 23:46:23,891-INFO-centos2hce2.py-[line:1149]: begin to set selinux2022-08-21 23:46:23,892-INFO-centos2hce2.py-[line:1157]: grub path is /boot/grub2/grub.cfg2022-08-21 23:46:23,895-INFO-centos2hce2.py-[line:1162]: sed selinux succeed2022-08-21 23:46:23,897-INFO-centos2hce2.py-[line:1167]: create autorelabel file succeed2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1172]: modify selinux config succeed2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1174]: create phase 1 flag file succeed2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1184]: selinux has been set, please reboot now2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1206]: upgrade precommit selinux success[root@localhost ~]# reboot 系统重启后,再次执行centos2hce2.py --precommit upg-selinux命令。 [root@localhost ~]# centos2hce2.py --precommit upg-selinux2022-08-21 23:57:07,576-INFO-centos2hce2.py-[line:1239]: precommit migration2022-08-21 23:57:07,576-INFO-centos2hce2.py-[line:1176]: now begin to set selinux phase 22022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1181]: modify selinux config succeed2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1183]: create phase 2 flag file succeed2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1184]: selinux has been set, please reboot now2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1206]: upgrade precommit selinux success[root@localhost ~]# reboot c.第二次重启后,执行getenforce查看selinux状态,Enforcing表明selinux为开启状态。 [root@localhost ~]# getenforceEnforcing (可选)确认迁移完毕后,清理原系统数据。 迁移操作完成后,原系统的系统数据仍然保留在新系统中,并占用较大内存。建议执行centos2hce2.py --commit all命令清理数据。 执行命令后,系统会自动清理原系统的系统数据,包括步骤3中备份路径下的系统数据。 执行命令后,操作系统无法回退。 [root@localhost ~]# centos2hce2.py --commit all2022-08-22 04:45:32,601-INFO-centos2hce2.py-[line:1242]: commit migration
  • 安装迁移工具并检查迁移条件 从华为云开源镜像站下载最新版本的迁移工具安装包centos2hce2-*.rpm。 *表示迁移工具版本,本节以centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm安装包示例。由于迁移工具不断更新,版本号也随之不断更新,操作过程中请适配为实际的安装包名称。 [root@localhost test]# wget https://repo.huaweicloud.com/hce/2.0/updates/x86_64/Packages/centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm //下载centos2hce2-*.rpm[root@localhost test]# ls //检查是否下载成功centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm 安装迁移工具。 [root@localhost test]# rpm -ivh centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm --nodepswarning: centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8def926: NOKEYVerifying... ################################# [100%]Preparing... ################################# [100%]Updating / installing...1:centos2hce2-1.0.0-0.0.6.hce2 ################################# [100%] 配置待迁移系统的系统软件数据的备份路径。 在系统切换前,迁移工具将自动备份系统软件的所有数据至备份路径。 执行vim /etc/centos2hce2.conf命令,在centos2hce2.conf配置文件中配置backup_dir字段,配置备份路径。backup_dir默认为/mnt/sdb/.osbak。 # backup dirbackup_dir = "/mnt/sdb/.osbak" #配置原系统软件数据的备份路径 为避免迁移过程中系统数据的丢失,建议配置备份目录。 在系统迁移时,迁移工具会自动检查备份目录的空间。建议配置单独的数据盘(如/dev/sdb/,并将该分区挂载到/mnt/sdb/),避免因为空间不足导致的检查失败。 请勿将tmpfs类型的文件系统(如/dev、/run等)作为备份目录,系统重启后tmpfs类型文件系统内的文件会丢失。 设置系统迁移参数。 设置web迁移方式。 web迁移方式通过下载RPM包集合对系统迁移,因此要求在下载RPM包的过程中不能断网。 在centos2hce2.conf配置文件中,参考参数说明进行设置: [repo_relation].....# default yum source, val: web or isodefault_yum_source = 'web'.....# if web as source, web link config as followweb_link_dir = "https://repo.huaweicloud.com/hce/2.0/os/x86_64/;https://repo.huaweicloud.com/hce/2.0/updates/x86_64/" 表1 参数说明 参数 说明 default_yum_source 迁移方式,设置为'web'。 web_link_dir HCE的base repo源和updates repo源地址,多个repo源之间需用英文分号隔开。 设置为https://repo.huaweicloud.com/hce/2.0/os/x86_64/;https://repo.huaweicloud.com/hce/2.0/updates/x86_64/ 在此配置的HCE repo源地址会在迁移过程中自动替换掉当前旧系统的repo源,迁移完成后,系统中将存在HCE的repo源文件与旧系统的repo源文件,建议将/etc/yum.repos.d/目录下不再使用的repo源文件进行清理,只保留HCE的repo源文件。 配置isclose_modules参数,仅CentOS 8系列需要配置。 CentOS 8系列支持将RPM包集成为module的方式批量安装RPM包。HCE不支持此种安装方式。因此系统迁移前,须关闭module功能。 “yes”表示系统迁移前会自动关闭系统上的modules,默认为“yes”。 “no”表示系统迁移前不会自动关闭系统上的modules,且若检测到有modules开启时,迁移操作中断。 [system]# whether close modules, if value is no, system may be not migrateisclose_modules = "yes" 执行命令dnf module list可查看待迁移系统中所有运行的module。 执行命令dnf module list | grep '\[e\]'可查看待迁移系统开启的module。 执行centos2hce2.py --check all命令,检查当前系统配置是否满足迁移条件。 提示“Enviroment check passed!”时,表示满足迁移条件,可直接执行迁移操作。 提示“call migration failed”时,表示不满足迁移条件,请根据步骤6自动处理相关异常信息。Error Number及其对应错误信息请参见表2。 表2 Error Number对应关系 Error Number 错误信息 10001 非root用户下执行迁移工具命令时,需要切换至root。 10002 URL存在问题,/etc/centos2hce2.conf配置文件中web_link_dir、web_link_tar参数填写有误导致无法下载对应repo文件、rpm文件,或者无法连通。 10003 基础命令缺失,例如rpm、yum、yumdownloader命令。 10004 空间检查失败,磁盘空间不足或者内存大小不足。 10005 原系统无本地yum源或者yum源不通,需要重新配置。 10006 目标系统yum源配置有误,检查/etc/centos2hce2.conf配置文件中web_link_dir参数填写是否有误。 10007 安装sut失败,检查/etc/centos2hce2.conf配置文件中web_link_dir参数填写是否有误。 10008 sut检查失败。 10009 依赖检查失败,需要先执行centos2hce2.py --install all安装依赖。 10010 chroot升级方式,清理原有chroot文件夹失败,文件夹路径见/etc/centos2hce2.conf配置文件中的chroot_path。 10011 chroot路径配置错误,/etc/centos2hce2.conf配置文件中chroot_path配置有误。 10012 chroot升级方式,并且配置了预构建环境tar包下载地址,解压tar包失败,检查/etc/centos2hce2.conf配置文件中的web_link_tar参数是否有误。 10013 /etc/ld.so.conf检查失败,需要清理/etc/ld.so.conf文件中除“include ld.so.conf.d/*.conf”之外的字段。 10014 文件系统存在损坏或异常,需要修复。 10015 /etc/fstab文件挂载目录不符合标准,需要将/etc/fstab文件中非LVM卷格式的文件系统分区以UUID进行挂载。 10016 开启文件属性检查后,系统内存在Immutable/Append_Only属性的文件,对于检查出的文件,需要加入到/etc/centos2hce2.conf配置文件中的exclude_dir字段。 10017 /etc/sysconfig/ntpd文件存在-u ntp:ntp配置,需要删除/etc/sysconfig/ntpd文件中-u ntp:ntp字段。 10018 /etc/ssh/sshd_config配置文件存在HCE2.0不支持的算法,需要按照提示删除这些算法。 10019 系统中含有重复的rpm包,请先卸载不再使用的低版本rpm包后再次检查。(如果不想卸载重复包例如多内核场景kernel、kernel-devel等,直接进行升级,可以通过配置/etc/centos2hce2.conf文件中的extra_check_switch = false选项,跳过额外检查。) 安装迁移工具依赖的软件。 执行centos2hce2.py --install all命令,迁移工具会先进行备份,接着系统自动安装迁移工具依赖的软件包,并进行迁移前相关预处理操作。 以下提示表明,已安装依赖的软件包及相关预处理操作,需再次执行步骤5进行环境检查。 2022-08-19 03:12:58,373-INFO-centos2hce2.py-[line:832]: Dependency packages already exist!2022-08-19 03:12:58,373-INFO-centos2hce2.py-[line:891]: migrate install depend options finished
  • general/hwsecurity/cybersecurity三种类型的差异 检查项类型 检查项名称 检查内容 general hwsecurity cybersecurity 是否默认满足 初始配置 文件系统配置 应当对系统关键目录进行分区挂载 - - - 否 确保禁用不需要的文件系统 - - - 否 确保无需修改的分区以只读方式挂载 - - - 否 确保无需挂载设备的分区以nodev方式挂载 - - - 否 确保无可执行文件的分区以noexec方式挂载 - - - 否 确保无需SUID和SGID的分区以nosuid方式挂载 - - - 否 避免使用USB存储 √ - - 是 软件服务配置 禁止安装X Window系统 - - - 是 禁止启用debug-shell服务 √ - - 是 禁止启用rsync服务 √ - - 是 禁止启用avahi服务 √ √ - 是 禁止启用SNMP服务 √ √ - 是 禁止启用squid服务 √ √ - 是 避免启用samba服务 √ √ - 是 禁止启用FTP服务 √ √ - 是 禁止启用TFTP服务 √ √ - 是 禁止启用DNS服务 √ - - 是 禁止启用NFS服务 √ √ - 是 禁止启用rpcbind服务 √ √ √ 否 禁止启用LDAP服务 √ √ - 是 禁止启用DHCP服务 √ √ - 是 禁止安装CUPS服务软件 - - - 是 禁止安装NIS服务软件 - - - 是 禁止安装telnet软件 - - - 是 禁止安装NIS客户端 - - - 是 禁止安装LDAP客户端 - - - 是 禁止安装调测类工具 - - - 是 禁止安装开发编译类工具 - - - 是 禁止安装网络嗅探类工具 - - - 是 软件升级配置 确保配置GPG公钥 - - - 是 确保配置启用gpgcheck - - - 是 确保配置软件仓库源 - - - 是 文件完整性检查 确保安装AIDE - - - 否 应当定期检查文件完整性 - - - 否 通用进程加固 确保启用ASLR √ - - 是 确保core dump配置正确 √ - - 是 应当合理限制用户可打开文件数量 - - - 否 确保链接文件保护配置正确 √ - - 是 确保dmesg访问权限配置正确 √ √ - 否 确保内核符号地址受限访问 √ √ - 是 应当合理限制进程ptrace能力 - - - 否 禁止全局加解密策略配置为LEGACY - - - 是 系统服务 时间同步服务 应当正确配置ntpd服务 - - - 否 应当正确配置chronyd服务 - - - 是 定时任务服务 确保cron服务正常运行 √ - - 是 确保cron配置权限正确 √ √ - 否 SSH服务 确保/etc/ssh/sshd_config权限配置正确 √ √ - 是 确保SSH私钥文件权限配置正确 √ √ √ 否 确保SSH公钥文件权限配置正确 √ √ √ 否 确保启用IgnoreRhosts √ - - 是 应当合理配置认证黑白名单 - - - 否 确保SSH使能PAM认证 √ - - 是 禁止SSH root登录 - - √ 否 禁止SSH空口令登录 √ - - 是 禁止使用HostbasedAuthentication √ - - 是 确保配置Warning Banner文件路径 √ √ - 否 确保正确配置SSH日志级别 √ √ - 是 应当配置SSH服务侦听IP - - - 否 应当正确配置SSH并发未认证连接数 √ - - 否 禁止使用X11Forwarding √ √ - 否 应当配置SSH MaxSessions不超过10 √ - - 是 应当正确配置MaxAuthTries √ - - 否 禁止使用PermitUserEnvironment √ - - 是 应当配置LoginGraceTime不超过60秒 √ √ - 否 确保配置空闲超时间隔时间 √ √ - 否 禁止使用AllowTcpForwarding √ √ - 否 确保SSH KexAlgorithms配置强算法 √ √ - 是 确保SSH MACs配置强算法 √ √ - 是 确保SSH Ciphers配置强算法 √ √ - 是 禁止配置SSH将弃用的选项 √ - - 是 网络服务 禁用不使用的网络协议和设备 避免使用不常见网络协议 - - - 否 避免使用无线网络 - - - 是 内核网络协议栈 禁止系统响应ICMP广播报文 √ √ - 是 禁止接收ICMP重定向报文 √ √ - 否 禁止转发ICMP重定向报文 √ - - 是 应当忽略所有ICMP请求 - - - 否 确保忽略伪造的ICMP报文 √ - - 是 确保启用反向地址过滤 √ √ - 否 禁止IP转发 √ √ - 是 禁止接收源路由报文 √ √ - 否 确保启用TCP-SYN cookie保护 √ √ - 是 应当启用日志记录可疑的网络包 √ - - 否 避免启用tcp_timestamps - - - 否 确保TIME_WAIT TCP协议等待时间已配置 √ - - 是 应当合理配置SYN_RECV状态队列数量 - - - 否 禁止使用ARP代理 - - - 是 防火墙配置 配置firewalld服务 应当启用firewalld服务 - - - 是 确保iptables未启用 - - - 是 确保nftables未启用 - - - 是 应当配置正确的默认区域 - - - 否 应当确保网络接口绑定正确区域 - - - 否 避免开启不必要的服务和端口 - - - 否 配置iptables服务 应当启用iptables服务 - - - 否 确保firewalld未启用 - - - 否 确保nftables未启用 - - - 是 应当正确配置iptables默认拒绝策略 - - - 否 应当正确配置iptables loopback策略 - - - 否 应当正确配置iptables INPUT策略 - - - 否 应当正确配置iptables OUTPUT策略 - - - 否 应当正确配置iptables INPUT、OUTPUT关联策略 - - - 否 配置nftables服务 应当启用nftables服务 - - - 否 确保iptables未启用 - - - 是 确保firewealld未启用 - - - 否 应当配置nftables默认拒绝策略 - - - 否 应当配置nftables loopback策略 - - - 否 应当正确配置nftables input策略 - - - 否 应当正确配置nftables output策略 - - - 否 应当正确配置nftables input、output关联策略 - - - 否 日志审计 auditd 确保auditd审计已启用 √ - - 是 应当在启动阶段启用auditd - - - 否 应当正确配置audit_backlog_limit - - - 否 确保配置单个日志大小限制 - - - 是 确保审计日志rotate已启用 - - - 否 确保审计日志不被自动删除 - - - 是 应当合理配置磁盘空间阈值 - - - 是 避免配置审计日志限速阈值过小 - - - 是 应当配置sudoers审计规则 - √ √ 否 应当配置登录审计规则 - - - 是 应当配置会话审计规则 - - - 是 应当配置时间修改审计规则 - √ √ 否 应当配置SELinux审计规则 - - - 否 应当配置网络环境审计规则 - - √ 否 应当配置文件访问控制权限审计规则 - - - 否 应当配置文件访问失败审计规则 - - - 否 应当配置文件删除审计规则 - - - 否 应当配置账号信息修改审计规则 - √ √ 否 应当配置文件系统挂载审计规则 - - - 否 应当配置提权命令审计规则 - - - 否 应当配置内核模块变更审计规则 - - - 是 应当配置修改sudo日志文件审计规则 - - - 否 rsyslog 确保rsyslog服务已启用 √ √ √ 否 确保系统认证相关事件日志已记录 - - - 是 确保cron服务日志已记录 √ - - 是 应当正确配置各服务日志记录 - - - 是 应当正确配置rsyslog默认文件权限 √ √ √ 否 确保rsyslog日志rotate已配置 - - - 否 应当配置发送日志到远程日志服务器 - - - 否 应当仅在指定的日志主机上接收远程rsyslog消息 - - - 否 确保rsyslog转储journald日志已配置 - - - 否 账号与口令管理 账号管理 禁止无需登录的账号拥有登录能力 - - - 否 禁止存在不使用的账号 - - - 否 应当正确设置账号有效期 - - - 否 禁止存在UID为0的非root账号 - - - 是 确保UID唯一 - - - 是 确保GID唯一 - - - 是 确保账号名唯一 - - - 是 确保组名唯一 - - - 是 确保/etc/passwd中的组都存在 - - - 是 确保账号拥有自己的Home目录 - - - 是 确保账号Home目录权限是750或更严格 - - - 是 避免账号Home目录下存在.forward文件 - - - 是 避免账号Home目录下存在.netrc文件 - - - 是 确保用户PATH变量被严格定义 - - - 是 口令管理 确保配置口令复杂度 √ √ √ 否 确保限制重用历史口令次数 √ √ √ 否 确保口令中不包含账号字符串 - - - 是 确保口令使用SHA512算法加密 √ √ √ 否 确保口令过期时间设置正确 √ √ √ 否 确保口令过期告警时间设置正确 √ √ - 是 应当设置口令修改周期设置正确 √ √ √ 否 确保不活跃口令锁定时间不超过30天 √ - - 是 确保Grub已设置口令保护 - - - 是 确保单用户模式已设置口令保护 - - - 是 身份认证 登录管理 确保登录失败一定次数后锁定账号 √ √ √ 否 避免root用户本地接入系统 - - - 否 确保会话超时时间设置正确 √ √ √ 否 确保Warning Banner包含合理的信息 确保本地登录Warning Banner包含合理的信息 √ √ - 否 确保远程登录Warning Banner包含合理的信息 √ √ - 否 确保motd文件包含合理的信息 √ √ - 否 确保/etc/issue权限配置正确 √ √ - 是 确保/etc/issue.net权限配置正确 √ √ - 是 确保/etc/motd权限配置正确 √ √ - 是 访问控制 SELinux 应当启用enforce模式 - - - 是 应当正确配置SELinux策略 - - - 是 避免标签为unconfined_service_t的服务存在 - - - 否 确保SETroubleshoot服务未安装 - - - 是 确保M CS 转换服务未安装 - - - 是 特权命令 确保su受限使用 √ √ √ 否 确保su命令继承用户环境变量不会引入提权 √ √ √ 否 确保普通用户通过sudo运行特权程序 - - - 否 确保配置sudo日志文件 √ - - 否 禁止使用SysRq键 - √ - 否 系统文件权限 确保/etc/passwd权限配置正确 √ - - 是 确保/etc/passwd-权限配置正确 √ - - 是 确保/etc/shadow权限配置正确 √ - - 是 确保/etc/shadow-权限配置正确 √ - - 是 确保/etc/group权限配置正确 √ - - 是 确保/etc/group-权限配置正确 √ - - 是 确保/etc/gshadow权限配置正确 √ - - 是 确保/etc/gshadow-权限配置正确 √ - - 是 确保全局可写目录已设置sticky位 - - - 是 禁止存在无属主或属组的文件或目录 - - - 是 禁止存在全局可写的文件 - - - 是 禁止存在空链接文件 - - - 是 禁止存在隐藏的可执行文件 - - - 是 确保删除文件非必要的SUID和SGID位 - - - 是 确保umask是027或更严格 √ √ √ 否 “√”表示执行。 “-”表示不执行。
  • 关于通用漏洞披露(CVE) CVE(Common Vulnerabilities and Exposures)是已公开披露的各种计算机安全漏洞,所发现的每个漏洞都有一个专属的CVE编号。Huawei Cloud EulerOS为保障系统安全性,紧密关注业界发布的CVE信息,并会及时修复系统内各类软件漏洞,增强系统的安全性。您可在Huawei Cloud EulerOS的安全公告中查看安全更新记录。 Huawei Cloud EulerOS 1.1安全公告 Huawei Cloud EulerOS 2.0安全公告 根据CVSS(Common Vulnerability Scoring System)评分,Huawei Cloud EulerOS将安全更新分为四个等级: Critical(高风险,必须安装) Important(较高风险,强烈建议安装) Moderate(中等风险,推荐安装) Low(低风险,可选安装) 若您目前已安装Huawei Cloud EulerOS 1.1及以上版本,您可以根据以下操作查询并安装安全更新,修复系统漏洞。本章节以Huawei Cloud EulerOS 2.0为例举例说明。 Huawei Cloud EulerOS版本不同,部分显示可能与本文档存在差异,以实际显示为准。 父主题: 对HCE进行安全更新
  • 回退RPM包 执行osmt rollback --reboot_config always命令回退RPM包。仅支持回退最近一次更新的RPM包。 --reboot_config always:可选,若上次升级有need_reboot_rpms列表中的RPM包,请使用此参数。 如果不带--reboot_config always,上次升级有涉及need_reboot_rpms列表中的RPM包,需要手动重启后才能回退生效。 请使用最新版本的OSMT工具进行操作,不建议通过OSMT工具回退OSMT自身版本。 父主题: 使用OSMT工具升级
  • 约束限制 由于x2hce-ca工具安装会有额外资源包引入,不建议在业务环境中运行。x2hce-ca工具支持在HCE 2.0和CentOS的操作系统进行安装使用。 x2hce-ca工具支持扫描的文件格式为jar、py、pyc、bin、sh、rpm、ko。其中,只支持扫描源码为C、C++、Java和Python语言的rpm格式文件。 x2hce-ca工具不支持回滚,任务异常中断后会在/opt/x2hce-ca/目录下产生残留文件,并不影响工具再次使用。异常中断的任务请重新执行。 安装和运行x2hce-ca工具的系统参数要求如下所述。 表1 运行x2hce-ca工具的操作系统参数要求 硬件类型 说明 架构 x86_64 CPU 双核及以上 内存 系统空闲内存要求8GB及以上 硬盘 20GB及以上 父主题: x2hce-ca应用兼容性评估
  • hung task 当内核检测到进程处于D状态超过设定的时间时,上报hung task异常。 原理 进程其中一个状态是TASK_UNINTERRUPTIBLE,也叫D状态,处于D状态的进程只能被wake_up唤醒。内核引入D状态时,是为了让进程等待IO完成。正常情况下,IO正常处理,进程不应该长期处于D状态。 hung task检测进程长期处于D状态的原理,内核会创建一个线程khungtaskd,用来定期遍历系统中的所有进程,检查是否存在处于D状态超过设置时长(默认120秒)的进程。如果存在这样的进程,则打印并上报相关警告和进程堆栈。如果配置了hung_task_panic(通过proc或内核启动参数配置),则直接发起panic。 触发方法 创建内核线程,设成D状态,scheduler释放时间片。
  • page allocation failure page allocation failure是申请空闲页失败时,系统上报的错误。当程序申请某个阶数(order)的内存,但系统内存中,没有比申请阶数高的空闲页,即触发内核报错。 原理 Linux使用伙伴系统(buddy system)内存分配算法。将所有的空闲页表(一个页表的大小为4K)分别链接到包含了11个元素的数组中,数组中的每个元素将大小相同的连续页表组成一个链表,页表的数量为1、2、4、8、16、32、64、128、256、512、1024,所以一次性可以分配的最大连续内存为1024个连续的4k页表,即4MB的内存。 假设申请一个包括256个页表的内存,指定阶数order为6,系统会依次查找数组中的第9、10、11个链表,上一个为空,表示没有此阶数的空闲内存,查找下一个,直到最后一个链表。 如果所有链表均为空,申请失败,则内核上报错误page allocation failure。输出报错信息,描述申请阶数为6的内存页失败: page allocation failure:order:6 触发方法 用alloc_pages连续申请高阶数内存页(例如order=10),不释放,直到申请失败。
  • warning Warning是操作系统在运行时,检测到需要立即注意的内核问题(issue),而采取的上报动作,打印发生时的调用栈信息。上报后,系统继续运行。 原理 Warning是通过调用WARN、WARN_ON、WARN_ON_ONCE等宏来触发的。 导致Warning的原因有多种,需要根据调用栈回溯,找到调用Warning宏的具体原因。Warning宏并不会导致系统运行状态发生改变,也不提供处理Warning的指导。 触发方法 根据系统调用构造Warning条件。
  • panic Kernel panic是指操作系统在监测到内部的致命错误,并无法安全处理此错误时采取的动作。内核触发到某种异常情况,运行kernel_panic函数,并尽可能把异常发生时获取的全部信息打印出来。 原理 导致异常的原因多种多样,通过异常打印的调用信息,找到调用kernel_panic的原因。常见的原因包括内核堆栈溢出、内核空间的除0异常、内存访问越界、内核陷入死锁等。 触发方法 内核态读0地址。
  • soft lockup soft lockup是内核检测CPU在一定时间内(默认20秒)没有发生调度切换时,上报的异常。 原理 soft lockup利用Linux内核watchdog机制触发。内核会为每一个CPU启动一个优先级最高的FIFO实时内核线程watchdog,名称为watchdog/0、watchdog/1以此类推。这个线程会定期调用watchdog函数,默认每4秒执行一次。同时调用过后会重置一个hrtimer定时器在2倍的watchdog_thresh时间后到期。watchdog_thresh是内核参数,对应默认超时时间为20秒。 在超时时间内,如果内核线程watchdog没被调度,hrtimer定时器到期,即触发内核打印类似如下的soft lockup异常。 BUG: soft lockup - CPU#3 stuck for 23s! [kworker/3:0:32] 触发方法 关闭中断或关闭抢占,软件执行死循环。
  • RCU(Read-Copy Update) stall RCU stall是一种rcu宽限期内rcu相关内核线程没有得到调度的异常。 原理 在RCU机制中,reader不用等待,可以任意读取数据,RCU记录reader的信息;writer更新数据时,先复制一份副本,在副本上完成修改,等待所有reader退出后,再一次性地替换旧数据。 writer需要等所有reader都停止引用“旧数据”才能替换旧数据。这相当于给了这些reader一个优雅退出的宽限期,这个等待的时间被称为grace-period,简称GP。 当reader长时间没有退出,writer等待的时间超过宽限期时,即上报RCU Stall。 触发方法 内核在Documentation/RCU/stallwarn.txt文档列出了可能触发RCU stall的场景:cpu在rcu reader临界区一直循环,cpu在关闭中断或关闭抢占场景中一直循环等。
  • global OOM Linux的OOM killer特性是一种内存管理机制,在系统可用内存较少的情况下,内核为保证系统还能够继续运行下去,会选择结束一些进程释放掉一些内存。 原理 通常oom_killer的触发流程是:内核为某个进程分配内存,当发现当前物理内存不够时,触发OOM。OOM killer遍历当前所有进程,根据进程的内存使用情况进行打分,然后从中选择一个分数最高的进程,终止进程释放内存。 OOM killer的处理主要集中在mm/oom_kill.c,核心函数为out_of_memory,函数处理流程为: 通知系统中注册了oom_notify_list的模块释放一些内存,如果从这些模块中释放出了一些内存,直接结束oom killer流程;如果回收失败,进入下一步。 触发oom killer通常是由当前进程进行内存分配所引起。如果当前进程已经挂起了一个SIG_KILL信号或者正在退出,直接选中当前进程,终止进程释放内存;否则进入下一步。 检查panic_on_oom系统管理员的设置,决定OOM时是进行oom killer还是panic。如果选择panic,则系统崩溃并重启;如果选择oom killer,进入下一步。 进入oom killer,检查系统设置,系统管理员可设置终止当前尝试分配内存、引起OOM的进程或其它进程。如果选择终止当前进程,oom killer结束;否则进入下一步。 调用select_bad_process选中合适进程,然后调用oom_kill_process终止选中的进程。如果select_bad_process没有选出任何进程,内核进入panic。 触发方法 执行占用大内存的程序,直到内存不足。
  • list corruption list corruption是内核检查链表有效性失败的报错,报错类型分为list_add corruption和list_del corruption。 原理 内核提供list_add和list_del,对传入的链表先检查链表的有效性(valid),检查通过后,修改链表增加或删除节点。如果检查链表失败,则上报corruption错误。检查和报错代码在内核lib/list_debug.c。 这种错误通常为内存异常操作导致,例如内存踩踏、内存损坏等。 触发方法 用list.h的内核标准接口创建链表,非法修改链表节点的prev或next指针,再调用内核list_add/list_del接口。
  • I/O error Linux I/O error报错通常表示输入/输出操作失败,在网卡、磁盘等IO设备驱动异常,或文件系统异常都可能打印这个错误。 原理 错误原因取决于代码执行失败的条件。常见的触发异常的原因是硬件故障、磁盘损坏、文件系统错误、驱动程序问题、权限问题等。例如当系统尝试读取或写入磁盘上的数据时,如果发生错误,就会出现I/O错误。 触发方法 系统读写磁盘过程,拔出磁盘,导致磁盘数据损坏。
  • EXT4-fs error EXT4-fs error是由于ext4格式的文件系统中,文件节点的错误导致。 原理 文件储存的最小存储单位叫做“扇区”(sector),连续多个扇区组成“块”(block)。inode节点储存文件的元信息,包括文件的创建者、创建日期、大小、属性、实际存储的数据块(block number)。EXT4格式的inode信息校验失败会触发EXT4-fs error。 内核ext4校验使用checksum校验inode信息,当出现分区表错误、磁盘硬件损坏时,内核返回-EIO错误码,系统上报EXT4-fs error checksum invalid错误。 触发方法 使用磁盘过程中强行拔盘,重新接入读盘。
  • Bad mm_struct Bad mm_struct错误通常是由于内核中的一个或多个mm_struct数据结构被破坏或损坏所导致。 原理 mm_struct是Linux内核中的一个重要数据结构,用于跟踪进程的虚拟内存区域。如果该数据结构被破坏,可能会导致进程崩溃或系统崩溃。这种错误通常内存异常导致,例如mm_struct区域的内存被踩踏、内存越界等。 触发方法 无人为触发方法,当硬件错误,或者Linux系统内核代码错误时会触发Bad mm_struct。
  • MCE (Machine Check Exception) Machine Check Exception (MCE) 是CPU发现硬件错误时触发的异常(exception),上报中断号是18,异常的类型是abort。 原理 导致MCE的原因主要有:总线故障、内存ECC校验错、cache错误、TLB错误、内部时钟错误等。不仅硬件故障会引起MCE,不恰当的BIOS配置、firmware bug、软件bug也有可能引起MCE。 MCE中断上报,操作系统检查一组寄存器称为Machine-Check MSR,根据寄存器的错误码执行对应的处理函数(函数实现依赖不同的芯片架构实现)。 触发方法 无人为触发方法,当总线故障、内存ECC校验错、cache错误、TLB错误、内部时钟错误等时会触发MCE。
  • 通过wget命令下载RPM包 本节以下载hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm为例,介绍使用wget命令下载并安装RPM包。 单击这里登录openEuler社区。 在OS/everything目录下,选择aarch64/或者x86_64/系统架构目录,并打开“Packages/”目录。 查找所需要的RPM包,例如hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm。 选择此包后右击复制下载链接,执行wget命令下载RPM包。 检查是否下载成功。如下所示表示下载成功。 使用rpm -ivh hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm命令安装RPM包,如下所示表示安装成功。 如果安装过程中提示需要依赖其他的安装包,请根据同样的操作步骤先安装所依赖的安装包。
  • 通过repo文件批量下载RPM包 本节以openEuler-22.03-LTS/everything/x86_64为例,介绍下载openEuler-22.03-LTS/everything/x86_64目录下的RPM包并使用yum命令安装。 首先确保虚拟机能访问https://repo.openeuler.org/openEuler-22.03-LTS/网址。 配置yum源。 进入/etc/yum.repos.d目录,新建一个openEuler.repo文件,并将以下内容复制到该文件里面。 由于openEuler.repo文件和HCE系统repo文件有冲突,请先将/etc/yum.repos.d目录下HCE原有的repo文件进行备份,并删除HCE原有的repo文件,再创建openEuler.repo文件。 [openeuler]name=openeulerbaseurl=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/gpgcheck=1enabled=1priority=3gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler[everything]name=everythingbaseurl=https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64gpgcheck=1enabled=1priority=3gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/RPM-GPG-KEY-openEuler 执行yum clean all清除原来yum源的缓存信息。 执行yum makecache连接新配置的源 ,如下图所示表示repo源连接成功。 安装RPM包,以hadoop-3.1-common包为例。 执行yum list命令查看是否存在该包。 执行yum -y install hadoop-3.1-common命令来安装此包,如下所示表示该包已经安装成功。 恢复repo文件。 安装所需的openEuler包后,删除openEuler.repo文件,并将步骤2中删除的repo文件通过备份恢复。
  • 背景说明 HCE运行时,不可避免地会出现一些内核事件,例如soft lockup、RCU(Read-Copy Update) stall、hung task、global OOM、cgroup OOM、page allocation failure、list corruption、Bad mm_struct、I/O error、EXT4-fs error、MCE (Machine Check Exception)、fatal signal、warning、panic。本节为您介绍这些内核事件的原理及触发方法。
  • XGPU服务使用示例 影响XGPU服务的环境变量如下表所示,您可以在创建容器时指定环境变量的值。容器引擎可以通过XGPU服务获得算力和显存。 表1 影响XGPU服务的环境变量 环境变量名称 取值类型 说明 示例 GPU_IDX Integer 指定容器可使用的GPU显卡。 为容器分第一张显卡: GPU_IDX=0 GPU_CONTAINER_MEM Integer 设置容器内可使用的显存大小,单位 MiB。 为容器分配的显存大小为5120MiB: GPU_CONTAINER_MEM=5120 GPU_CONTAINER_QUOTA_PERCENT Integer 指定显卡算力分配百分比。 算力支持最小1%粒度的划分,推荐最小算力不低于4%。 为容器分配50%的算力比例: GPU_CONTAINER_QUOTA_PERCEN=50 GPU_POLICY Integer 指定GPU使用的算力隔离的策略。 0:不隔离算力,即原生调度。 1:固定算力调度。 2:平均调度。 3:抢占调度。 4:权重抢占调度。 5:混合调度。 6:权重弱调度。 算力隔离策略示例详见XGPU算力调度示例。 设置算力隔离策略为固定算力调度:GPU_POLICY=1 GPU_CONTAINER_PRIORITY Integer 指定容器的优先级。 0:低优先级 1:高优先级 创建高优先级容器: GPU_CONTAINER_PRIORITY=1 以nvidia的docker创建两个容器为例,介绍XGPU服务的使用方法,数据规划如下。 表2 数据规划 参数 容器1 容器2 说明 GPU_IDX 0 0 指定两个容器使用第一张显卡。 GPU_CONTAINER_QUOTA_PERCENT 50 30 为容器1分配50%算力,为容器2分配30%算力。 GPU_CONTAINER_MEM 5120 1024 为容器1分配5120MiB显存,为容器2分配1024MiB显存。 GPU_POLICY 1 1 设置第一张显卡使用固定算力调度策略。 GPU_CONTAINER_PRIORITY 1 0 指定容器1为高优先级容器,容器2为低优先级容器。 配置示例: docker run --rm -it --runtime=nvidia -e GPU_CONTAINER_QUOTA_PERCENT=50 -e GPU_CONTAINER_MEM=5120 -e GPU_IDX=0 -e GPU_POLICY=1 -e GPU_CONTAINER_PRIORITY=1 --shm-size 16g -v /mnt/:/mnt nvcr.io/nvidia/tensorrt:19.07-py3 bash docker run --rm -it --runtime=nvidia -e GPU_CONTAINER_QUOTA_PERCENT=30 -e GPU_CONTAINER_MEM=1024 -e GPU_IDX=0 -e GPU_POLICY=1 -e GPU_CONTAINER_PRIORITY=0 --shm-size 16g -v /mnt/:/mnt nvcr.io/nvidia/tensorrt:19.07-py3 bash
共100000条