云服务器内容精选

  • 弹性云服务器启动缓慢 如果弹性云服务器启动时间较长,可以通过修改默认等待时间,提高启动速度。 登录弹性云服务器。 执行以下命令,切换至root用户。 sudo su 执行以下命令,查询grub文件的版本。 rpm -qa | grep grub 图1 查询grub版本 将grub文件中timeout时间修改为0s。 grub版本小于2的: 打开文件“/boot/grub/grub.cfg”或“/boot/grub/menu.lst”,并修改等待时间“timeout=0”。 grub版本为2的: 打开文件/boot/grub2/grub.cfg,并修改等待时间“timeout=0”。 图2 修改timeout 父主题: 高频故障案例
  • 处理方法 Ubuntu 16.04云服务器通过SSH连接后,执行以下命令,修改grub配置。 cat /etc/default/grub 如下图所示,注释GRUB_TIMEOUT_STYLE=hidden,修改GRUB_TIMEOUT=10。 删除/etc/default/grub.d/目录下以“50”开头的所有文件。 rm -rf /etc/default/grub.d/50* 执行以下命令,刷新配置。 update-grub2 执行以下命令,修改yum源用来安装公版内核。 sed -i 's/azure.archive.ubuntu.com/repo.huaweicloud.com/g' /etc/apt/sources.list apt autoclean apt update 执行以下命令,安装ubuntu16.04公版内核。 apt install linux-image-generic 安装完成重启后在grub页面选择generic内核启动系统。 (可选)执行以下命令,删除azurelinuxagent,因为agent会一直打印日志到VNC控制台,影响VNC的使用。 sudo apt -y remove walinuxagent
  • 问题描述 Linux操作系统的E CS 实例发生异常重启事件,错误提示如下: Kernel panic - not syncing: NMI: Not continuing 同时,内核日志打印如下信息: [645683.754132] Uhhuh. NMI received for unknown reason 20 on CPU 1. [645683.754133] Do you have a strange power saving mode enabled? [645683.754133] Kernel panic - not syncing: NMI: Not continuing
  • 可能原因 如果Linux操作系统ECS实例的内核参数kernel.unknown_nmi_panic配置为1,则ECS会在系统收到NMI中断时主动通过panic系统重启。 通常情况下,将内核参数kernel.unknown_nmi_panic配置为1的目的是为了在发生NMI中断时,主动触发panic,从而进行系统定位。由于个别型号的CPU会在正常业务流程中产生NMI中断,在这种情况下如果将内核参数kernel.unknown_nmi_panic配置为1,将会导致ECS产生非预期的异常重启事件。
  • 解决方案 远程登录ECS实例。 执行以下命令,查看ECS实例内核参数kernel.unknown_nmi_panic的值。 sysctl -n kernel.unknown_nmi_panic 如果内核参数的取值为1,说明是由于内核参数配置错误引起的ECS实例异常重启。 图1 排查结果 执行以下命令,查看是否存在内核参数kernel.unknown_nmi_panic相关配置。 vim /etc/sysctl.conf 在/etc/sysctl.conf文件中,排查是否存在kernel.unknown_nmi_panic的相关配置。 如果存在kernel.unknown_nmi_panic=1的配置,将该配置改为kernel.unknown_nmi_panic=0 如果不存在kernel.unknown_nmi_panic=1的配置,增加kernel.unknown_nmi_panic=0 图2 查看/etc/sysctl.conf文件 按“Esc”,输入:wq保存并退出。 执行以下命令,使配置生效。 sysctl –p 图3 配置生效 该修复方案热生效,无需重启ECS。
  • 问题原因 常见的可能导致系统启动失败或者无法进入系统的系统配置错误如表1所示。 表1 常见系统配置错误 问题类型 典型问题 配置错误 /etc/fstab文件缺失或者配置错误 SELinux配置错误 /etc/security/limits.conf配置错误 /etc/passwd配置格式错误 /etc/shadow配置格式错误 /etc/ssh/sshd_config配置格式错误 文件或目录缺失 /etc/ssh目录被误删 /etc/security目录被误删 /etc/passwd文件被误删 /etc/shadow文件被误删 /etc/ssh/sshd_config文件被误删 文件权限错误 SSH依赖的私钥权限配置过大 SSH依赖的公钥权限配置过大 内核参数配置错误 vm.nr_hugepages配置过大
  • 实施步骤(手动) 安装前准备 创建弹性云服务器,且弹性云服务器已绑定弹性公网IP。 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?。 登录弹性云服务器,执行如下命令,新建jdk目录和tomcat目录。 cd /home/ mkdir webDemo cd webDemo/ mkdir jdk mkdir tomcat 您可以选择将安装包下载至本地后使用文件传输工具将安装包上传至云服务器。或者选择使用wget命令直接下载安装包至云服务器。 方法一:使用文件传输工具上传安装包至云服务器。 使用WinSCP工具上传jdk软件包至云服务器jdk文件夹。 使用WinSCP工具上传tomcat软件包至云服务器tomcat文件夹。 方法二:使用wget命令直接下载安装包至云服务器。 执行如下命令,进入jdk目录。 cd /home/webDemo/jdk 执行如下命令,下载jdk软件包。 wget jdk软件包下载地址 请参考表1查询jdk下载地址,或者使用其他开源镜像地址获取安装包。 例如:以jdk17为例,在列表中查看可用的JDK软件包版本,以jdk-17_linux-x64_bin.tar.gz安装包为例,执行以下命令。 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 执行如下命令,进入tomcat目录。 cd /home/webDemo/tomcat 执行如下命令,下载tomcat软件包。 请参考表1查询tomcat下载地址,或者使用其他开源镜像地址获取安装包。 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-x/vx.x.xx/bin/apache-tomcat-x.x.xx.tar.gz 例如:单击开源镜像地址,查询当前可用版本,以v8.5.xx版本安装包为例,执行以下命令。 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.xx/bin/apache-tomcat-8.5.xx.tar.gz --no-check-certificate 设置弹性云服务器安全组规则 单击弹性云服务器名称,查看弹性云服务器详情,在弹性云服务器详情页面,选择“安全组”。 在“安全组”界面,单击“更改安全组规则”,进入安全组详情界面。 在安全组详情界面,单击“添加规则”,弹出添加规则窗口。 根据界面提示配置安全组规则。 部署Java Web环境需为弹性云服务器添加两个安全组规则。 为云服务器添加ICMP安全组规则。 如果云服务器默认设置是禁止ICMP规则,当ping弹性服务器IP时会显示超时。因此首先为云服务器添加ICMP规则。 图3 添加ICMP规则 为云服务器添加web项目分配端口的访问规则,以8080端口为例。 图4 添加8080端口 安装jdk 执行如下命令,进入jdk目录。 cd /home/webDemo/jdk 解压jdk安装包到jdk目录下。 tar -xvf jdk-17_linux-x64_bin.tar.gz -C /home/webDemo/jdk/ 配置环境变量。 vim /etc/profile 在底部添加以下内容。 #set java environment JAVA_HOME=/home/webDemo/jdk/jdk-17.0.x JRE_HOME=$JAVA_HOME PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar export JAVA_HOME JRE_HOME PATH CLASSPATH “jdk-17.0.x”表示jdk安装包的具体版本,实际值需要从步骤2的返回值中获取。 例如:jdk-17.0.9 执行以下命令保存并退出。 :wq 执行以下命令使/etc/profile里的配置生效。 source /etc/profile 验证安装。 java -version 回显信息如下所示验证安装jdk成功。 [root@ecs-c525-web ~]# java -version java version "17.0.9" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 17.0.9+11-LTS-201) Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+11-LTS-201, mixed mode, sharing) 安装tomcat 执行如下命令,进入tomcat目录。 cd /home/webDemo/tomcat 解压tomcat安装包到tomcat目录下。 tar -xvf apache-tomcat-x.x.xx.tar.gz -C /home/webDemo/tomcat/ 例如:以v8.5.xx版本安装包为例,执行以下命令。 tar -xvf apache-tomcat-8.5.xx.tar.gz -C /home/webDemo/tomcat/ 进入tomcat的bin目录,执行以下命令安装tomcat。 cd /home/webDemo/tomcat/apache-tomcat-x.x.xx/ cd bin/ 例如:以v8.5.xx版本安装包为例,执行以下命令。 cd /home/webDemo/tomcat/apache-tomcat-8.5.xx/ cd bin/ 执行如下命令编辑setclasspath.sh脚本。 vi setclasspath.sh 并在setclasspath.sh脚本底部添加以下内容。 请根据资源和成本规划中jdk的版本号替换如下内容中的jdk版本号。 export JAVA_HOME=/home/webDemo/jdk/jdk-17.0.9 export JRE_HOME=$JAVA_HOME 执行如下命令保存后退出。 :wq 可输入以下命令启动tomcat。 ./startup.sh 执行如下命令查看tomcat进程。 ps -ef | grep tomcat 若返回如下图所示,表示tomcat启动成功。 图5 查看tomcat进程 验证Java Web环境搭建完成 在浏览器输入以下内容。 http://云服务器弹性公网IP:8080 如果界面跳转至默认的Tomcat界面,证明Java Web环境搭建完成。就可以在公网访问云服务器的8080端口了。 图6 访问云服务器的8080端口
  • 资源和成本规划 表1 资源和成本规划 资源 资源说明 成本说明 虚拟私有云VPC VPC网段:192.168.0.0/16 免费 虚拟私有云子网 可用区:可用区1 子网网段:192.168.0.0/24 免费 安全组 入方向规则1: 优先级:1 策略:允许 类型:IPv4 协议端口:ICMP: 全部 源地址:0.0.0.0/0 入方向规则2: 优先级:1 策略:允许 类型:IPv4 协议端口:TCP: 8080 源地址:0.0.0.0/0 免费 弹性云服务器 计费模式:包年/包月 可用区:可用区1 规格:c7.large.2 镜像:CentOS 7.4 64bit 系统盘:40G 弹性公网IP:现在购买 线路:全动态BGP 公网带宽:按流量计费 带宽大小:5 Mbit/s ECS涉及以下几项费用: 云服务器 云硬盘 弹性公网IP 具体的计费方式及标准请参考计费模式概述。 jdk Java开发工具软件。 获取方式: http://www.oracle.com/technetwork/java/javase/downloads 免费 tomcat 是一款开源的Web应用服务器。 获取方式: http://tomcat.apache.org/download-80.cgi 免费 PuTTY 跨平台远程访问工具。用于在软件安装过程中在Windows系统上访问云服务器。 获取方式: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 免费 WinSCP 跨平台文件传输工具。用于在Windows系统和Linux系统间传输文件。 获取方式: http://winscp.net/ 免费
  • Docker基本用法 Docker进程管理。 运行Docker systemctl start docker 停止Docker systemctl stop docker 重启Docker systemctl restart docker 镜像管理。 拉取镜像。您可以从镜像仓库这里获取,以Debian镜像为例,获取方法如下: 在镜像仓库的搜索框中输入Debian。 在搜索结果中选择需要获取的镜像,单击进入该镜像详情。 在镜像详情页面,复制拉取镜像的命令。 docker pull hub.atomgit.com/amd64/debian:rc-buggy 查看已有镜像 docker images 强制删除镜像 docker rmi hub.atomgit.com/amd64/debian:rc-buggy 容器管理。 创建一个容器并运行。 docker pull hub.atomgit.com/amd64/httpd:2.4.57-alpine docker run -it -d -p 80:80 --name datahttpd -v /data/:/var/www/httpd/ hub.atomgit.com/amd64/httpd:2.4.57-alpine 参数说明如下: -i:以交互模式运行容器,通常与-t同时使用。 -t:为容器重新分配一个伪输入终端,通常与-i同时使用。 -d:后台运行容器,并返回容器ID。 -p:端口映射,格式为“宿主机端口:容器端口”。 --name:为容器指定一个名称。 -v:把宿主机上的一个目录挂载到镜像里,格式为“宿主机目录:镜像内挂载的路径”,必须为绝对路径。 上述参数说明中的宿主机表示所创建的弹性云服务器实例。 示例命令表示:使用镜像httpd,以交互模式启动一个容器,将容器的80端口映射到宿主机的80端口,宿主机的目录/data映射到容器的/var/www/httpd目录,并返回容器ID。 查看容器启动情况。 docker ps -a 在浏览器输入弹性云服务器所绑定的弹性公网IP,访问测试容器运行情况。出现以下内容表示运行成功。
  • 资源和成本规划 本次实践所用的资源配置及软件版本如表3中所示。当您使用不同的硬件规格或软件版本时,本指导中的命令及参数可能会发生改变,需要您根据实际情况进行调整。 表3 资源和成本规划 资源 资源说明 成本说明 虚拟私有云VPC VPC网段:192.168.0.0/16 免费 虚拟私有云子网 可用区:可用区1 子网网段:192.168.0.0/24 免费 安全组 优先级:1 策略:允许 类型:IPv4 协议端口:TCP: 80 源地址:0.0.0.0/0 免费 弹性云服务器 计费模式:包年/包月 可用区:可用区1 规格:c7.large.2 镜像:Debian 12.0.0 64bit 系统盘:40G 弹性公网IP:现在购买 线路:全动态BGP 公网带宽:按流量计费 带宽大小:5 Mbit/s ECS涉及以下几项费用: 云服务器 云硬盘 弹性公网IP 具体的计费方式及标准请参考计费模式概述。 Docker 获取方式: http://mirrors.huaweicloud.com/docker-ce/linux/debian/gpg 免费 镜像 获取方式: https://hub.atomgit.com/repos 免费
  • 简介 本文介绍了如何在华为云上使用弹性云服务器的Linux实例手工部署Docker,并提供了Docker常用操作及简单的镜像制作过程。 表1 Docker相关术语 术语 解释 Docker Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。 镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 容器 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 该指导以“Debian 12.0.0 64bit”操作系统为例,Docker要求64位的系统且内核版本至少为3.10。 您还可以选择Solution as Code一键式部署方式自动部署Docker Swarm集群,详细内容请参见快速部署高可用的Docker Swarm集群。
  • 资源和成本规划 本次实践所用的资源配置及软件版本如表3中所示。当您使用不同的硬件规格或软件版本时,本指导中的命令及参数可能会发生改变,需要您根据实际情况进行调整。 表3 资源和成本规划 资源 资源说明 成本说明 虚拟私有云VPC VPC网段:192.168.0.0/16 免费 虚拟私有云子网 可用区:可用区1 子网网段:192.168.0.0/24 免费 安全组 优先级:1 策略:允许 类型:IPv4 协议端口:TCP: 80 源地址:0.0.0.0/0 免费 弹性云服务器 计费模式:包年/包月 可用区:可用区1 规格:s6.2xlarge.4 镜像:CentOS 7.5 64bit 系统盘:40G 弹性公网IP:现在购买 线路:全动态BGP 公网带宽:按流量计费 带宽大小:5 Mbit/s ECS涉及以下几项费用: 云服务器 云硬盘 弹性公网IP 具体的计费方式及标准请参考计费模式概述。 Docker 获取方式: https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo 免费 镜像 获取方式: https://hub.atomgit.com/repos 免费
  • Docker基本用法 Docker进程管理。 运行Docker systemctl start docker 停止Docker systemctl stop docker 重启Docker systemctl restart docker 镜像管理。 拉取镜像。您可以从镜像仓库这里获取,以CentOS镜像为例,获取方法如下: 在镜像仓库的搜索框中输入CentOS。 在搜索结果中选择需要获取的镜像,单击进入该镜像详情。 在镜像详情页面,复制拉取镜像的命令。 docker pull hub.atomgit.com/amd64/centos:centos7 查看已有镜像 docker images 强制删除镜像 docker rmi hub.atomgit.com/amd64/centos:centos7 容器管理。 创建一个容器并运行。 docker pull hub.atomgit.com/amd64/httpd:2.4.57-alpine docker run -it -d -p 80:80 --name datahttpd -v /data/:/var/www/httpd/ hub.atomgit.com/amd64/httpd:2.4.57-alpine 参数说明如下: -i:以交互模式运行容器,通常与-t同时使用。 -t:为容器重新分配一个伪输入终端,通常与-i同时使用。 -d:后台运行容器,并返回容器ID。 -p:端口映射,格式为“宿主机端口:容器端口”。 --name:为容器指定一个名称。 -v:把宿主机上的一个目录挂载到镜像里,格式为“宿主机目录:镜像内挂载的路径”,必须为绝对路径。 上述参数说明中的宿主机表示所创建的弹性云服务器实例。 示例命令表示:使用镜像httpd,以交互模式启动一个容器,将容器的80端口映射到宿主机的80端口,宿主机的目录/data映射到容器的/var/www/httpd目录,并返回容器ID。 查看容器启动情况。 docker ps -a 在浏览器输入弹性云服务器所绑定的弹性公网IP,访问测试容器运行情况。出现以下内容表示运行成功。
  • 部署Docker 登录弹性云服务器。 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用华为云提供的epel镜像源(x86_64和ARM)?。 添加yum源。 yum install epel-release -y yum clean all 安装yum-util。 yum install -y yum-utils device-mapper-persistent-data lvm2 设置docker yum源。 yum-config-manager --add-repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo 安装并运行Docker。 yum -y install docker-ce systemctl enable docker systemctl start docker 检查安装结果。 docker --version 回显如下类似信息,表示Docker安装成功。 Docker version 26.1.4, build 5650f9b
  • 简介 本文介绍了如何在华为云上使用弹性云服务器的Linux实例手工部署Docker,并提供了Docker常用操作及简单的镜像制作过程。 表1 Docker相关术语 术语 解释 Docker Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。 镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 容器 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 该指导以“CentOS 7.5 64bit(40GiB)”操作系统为例,Docker要求64位的系统且内核版本至少为3.10。 您还可以选择Solution as Code一键式部署方式自动部署Docker Swarm集群,详细内容请参见快速部署高可用的Docker Swarm集群。