深信服超融合平台部署Ubuntu 22.04 LTS:从规划到优化的完整实践指南
2026/9/10 10:24:29 网站建设 项目流程

1. 项目概述与核心价值

最近在帮一个客户做私有云环境的基础设施升级,他们之前用的是传统的服务器加虚拟化方案,运维复杂,资源利用率也上不去。这次选型,客户看中了深信服超融合(HCI)的方案,想在上面跑一些新的业务应用,而Ubuntu 22.04 LTS作为当前最稳定的Linux发行版之一,自然是很多开发环境和容器化应用的首选基础系统。所以,这个“在深信服超融合上部署Ubuntu 22.04 LTS”的任务,就成了整个项目里非常关键的一步。这不仅仅是点几下鼠标装个系统那么简单,它涉及到如何在超融合这种融合了计算、存储、网络的软硬件一体平台上,高效、稳定地跑起一个主流的Linux虚拟机,并且要考虑到后续的运维、性能调优和高可用性。

简单来说,超融合可以理解为一个“超级融合的硬件盒子”,它把服务器、存储和网络虚拟化都打包在了一起,通过软件定义的方式统一管理。在深信服HCI上部署Ubuntu,你面对的不再是物理服务器或者单纯的VMware ESXi,而是一个高度集成、管理界面可能不太一样的平台。这个过程,既要理解超融合本身的资源调度逻辑,也要熟悉Ubuntu系统安装的细节,还得把两者顺畅地对接起来。对于系统管理员、运维工程师或者架构师来说,掌握这套流程,意味着你能在更现代化的基础设施上快速构建应用底座,无论是部署K8s集群、跑数据库还是搭建CI/CD环境,都能有一个坚实且弹性可控的起点。

2. 部署前的核心准备工作

在真正点击“创建虚拟机”按钮之前,充分的准备工作能避免后续80%的麻烦。这一步的核心是“对齐”:让平台资源、系统镜像和你的规划目标对齐。

2.1 平台环境与资源确认

首先,你需要登录深信服超融合平台的管理界面。通常,这是一个基于Web的控制器,地址可能是https://<管理节点IP>。确保你拥有足够的权限,至少是能够创建虚拟机、管理存储和网络的角色。

1. 计算资源规划:你需要明确Ubuntu虚拟机的规格。对于Ubuntu 22.04 LTS,如果只是作为基础系统跑轻量服务,2核4GB内存起步是足够的。但如果计划在上面部署数据库(如PostgreSQL)或内存密集型应用,就需要预留更多。在超融合平台上,CPU和内存通常是超分使用的,但为了稳定性,尤其是生产环境,不建议过度超分。我的经验是,对于关键业务虚拟机,按1:1或轻度超分(如1.5:1)来预留资源。在规划时,还要留意平台集群的整体负载,避免将新虚拟机创建在已经负载很高的主机上。

2. 存储资源准备:这是超融合的核心优势之一,也是容易出问题的地方。你需要确定:

  • 存储类型:平台提供的是全闪存存储池还是混合存储?全闪存能提供极高的IOPS,适合对磁盘IO敏感的应用。
  • 存储策略:平台是否支持设置存储策略,比如副本数量(通常2副本或3副本保障高可用)、磁盘类型(厚置备或精简置备)。对于Ubuntu系统盘,我通常选择“精简置备”,可以节省初始存储空间,系统盘大小建议40GB以上,给/var(存放日志和Docker镜像)和/home留足余地。
  • 数据盘分离:强烈建议将系统盘和数据盘分开。系统盘用平台提供的虚拟存储,数据盘可以根据性能需求,考虑是否挂载额外的虚拟磁盘,或者未来对接外置高性能存储。在创建虚拟机时,可以先只挂载系统盘,数据盘后期通过添加硬盘的方式挂载,这样更灵活。

3. 网络配置梳理:

  • 虚拟交换机/端口组:确认虚拟机需要接入哪个业务网络。是内部管理网、业务前端网络还是后端存储网络?在平台上找到对应的端口组(Port Group)或虚拟交换机(vSwitch)。
  • IP地址规划:是使用DHCP自动获取,还是使用静态IP?如果是静态IP,提前准备好IP地址、子网掩码、网关和DNS服务器地址。对于服务器,静态IP是更稳妥的选择。
  • 安全组/防火墙策略:深信服平台通常集成了分布式防火墙功能。思考一下这台Ubuntu虚拟机需要开放哪些端口(例如SSH的22,Web服务的80/443等),提前规划好安全策略,遵循最小权限原则,不要一开始就放行所有流量。

2.2 Ubuntu镜像与安装介质准备

官方镜像是首选。前往Ubuntu官网下载Ubuntu 22.04.4 LTS(或最新LTS版本)的服务器版ISO镜像。服务器版(Server)没有图形界面,更轻量,更适合服务器环境。

关键选择:为什么是服务器版?桌面版(Desktop)包含了图形界面(GNOME),会占用更多内存和CPU资源,且大多数服务器操作通过SSH完成,图形界面非必需,反而增加了潜在的攻击面和维护负担。服务器版在安装过程中就可以选择安装OpenSSH server,装完即可远程连接,效率极高。

下载完成后,你需要将这个ISO文件上传到深信服超融合平台的“镜像仓库”或“ISO库”中。这个库是平台集中存储安装镜像的地方,所有主机节点都可以访问。

注意:上传前,最好校验一下ISO文件的MD5或SHA256值,确保文件在下载和传输过程中没有损坏。一个损坏的镜像会导致安装过程莫名失败,排查起来很头疼。

2.3 创建虚拟机的关键参数解析

一切就绪,开始在平台上创建虚拟机。这个过程虽然图形化,但每个选项都有讲究。

  1. 基本设置:

    • 名称和主机名:取一个清晰的名称,如ubuntu-2204-prod-01。主机名(Hostname)最好与此一致,方便标识。
    • 客户机操作系统:虽然平台可能能自动检测,但手动选择“Linux” -> “Ubuntu Linux (64-bit)”能确保平台为Ubuntu分配合适的虚拟硬件驱动(如VirtIO)。
  2. 计算资源配置:

    • CPU:按需分配。勾选“CPU热添加”选项,这允许你在虚拟机开机状态下增加CPU核心(需要操作系统内核支持,Ubuntu 22.04默认支持)。这是一个非常有用的运维特性。
    • 内存:按需分配。同样,勾选“内存热添加”选项。对于Linux,还需要在系统内部进行配置才能生效,但先在平台层开启是第一步。
    • CPU/Memory限制与预留:“预留”保证虚拟机一定能获得这部分资源;“限制”则防止其过度占用。对于重要虚拟机,可以设置“内存预留”等于分配值,确保内存不被回收。
  3. 存储配置:

    • 系统盘:选择之前上传的Ubuntu 22.04 ISO作为光驱。系统盘(如40GB)选择精简置备,存储策略选择满足你冗余要求的(如2副本)。
    • 总线类型:务必选择VirtIO!VirtIO是半虚拟化驱动,能提供接近原生硬件的I/O性能,远优于模拟的IDE或SATA控制器。这是提升虚拟机磁盘和网络性能最关键的一步。
  4. 网络配置:

    • 网络适配器:选择对应的业务端口组。
    • 适配器类型:同样,务必选择VirtIO。理由同上,性能至关重要。
    • MAC地址:可以选择自动生成,也可以手动指定一个固定的MAC地址,便于网络层进行IP绑定或准入控制。
  5. 其他选项:

    • 虚拟机启动策略:可以设置虚拟机跟随主机集群一起启动,并设置启动优先级。
    • 高可用性(HA):如果平台集群启用了HA,强烈建议为此Ubuntu虚拟机开启HA。这样当运行它的物理主机发生故障时,平台会自动将其在集群内其他主机上重启。

创建完成后,先不要急着开机。检查一遍所有配置,尤其是VirtIO驱动和存储网络的选择。

3. Ubuntu 22.04 LTS 系统安装详解

现在,可以启动虚拟机并从ISO镜像引导了。你会看到熟悉的Ubuntu安装界面。以下步骤我会强调在虚拟化环境中需要特别关注的点。

3.1 安装过程核心步骤与参数

  1. 语言与键盘布局:选择中文或英文,根据团队习惯来。
  2. 网络连接:安装程序会自动尝试DHCP获取IP。如果网络环境正常,这里应该能看到获取到的IP地址。如果没看到网络连接,大概率是因为虚拟机网络适配器类型不是VirtIO,而Ubuntu安装镜像默认可能没有对应的驱动。这印证了之前选择VirtIO的重要性。如果遇到此问题,需要关机,将适配器类型改为E1000等模拟网卡先完成安装,再安装VirtIO驱动后改回来,过程繁琐。
  3. 配置代理:如果有内部软件更新代理,在此处填写。否则留空。
  4. 镜像地址:默认使用Ubuntu官方镜像即可。如果有内网镜像源(如阿里云、腾讯云内网镜像),在这里替换可以极大加速安装和后续的软件更新速度。例如替换为https://mirrors.aliyun.com/ubuntu
  5. 存储配置(最关键的一步):
    • 安装程序会检测到我们在平台上分配的虚拟磁盘。
    • 对于新手,可以选择“使用整个磁盘”并配置LVM。LVM提供了更灵活的磁盘空间管理能力,后期可以动态调整分区大小。
    • 对于有明确分区规划的老手,可以选择“自定义存储布局”。我个人的常用分区方案如下:
      • efi: 512MB - 1GB(如果采用UEFI引导)。
      • swap: 交换分区,大小通常是物理内存的1-2倍,但在大内存(如32GB以上)服务器上,4GB-8GB足矣,甚至可以用交换文件代替。
      • /: 根分区,20-30GB,存放系统和核心应用。
      • /var: 单独分区,10-20GB。系统日志、Docker镜像、容器运行时数据、APT缓存都在这里,单独分区可以避免日志或镜像写满导致系统崩溃。
      • /home: 根据需求分配。如果这台机器有多个用户,可以分配大一些。
    • 重要提示:确保“引导加载程序安装设备”选择的是你创建的这个虚拟磁盘(例如/dev/vda),而不是其他设备。
  6. 配置文件:
    • 你的姓名、服务器名、用户名、密码:如实填写。服务器名建议和虚拟机名称一致。用户名避免使用rootadmin等常见名。
    • SSH设置:务必勾选“Install OpenSSH server”。这样系统安装完成后,你就可以直接通过SSH客户端(如PuTTY、SecureCRT)远程连接,无需依赖控制台的虚拟界面,操作起来方便太多。
    • Featured Server Snaps:这里会列出一些常见的Snap包,如dockerhelm等。我的建议是先不要在这里勾选任何Snap。Snap的更新机制和传统APT包管理不同,有时会带来依赖冲突。我们可以在系统安装完成后,用更可控的方式(如APT安装Docker CE)来安装需要的服务。
  7. 开始安装:确认信息无误后,开始安装。这个过程会从配置的镜像源下载软件包并安装到磁盘,速度取决于你的网络和镜像源。

3.2 首次启动与基础加固

安装完成,系统重启。首次通过SSH登录后,有几件必须马上做的事情:

  1. 更新系统:

    sudo apt update && sudo apt upgrade -y

    这能确保所有安全补丁和更新被应用。

  2. 检查并安装VirtIO驱动(验证):虽然Ubuntu 22.04内核已内置VirtIO驱动,但最好确认一下。检查磁盘和网络设备:

    # 检查磁盘是否为VirtIO块设备 lsblk -d -o NAME,TRAN # 如果TRAN列显示`virtio`,则正常。 # 检查网卡是否为VirtIO网络设备 lspci | grep -i ethernet # 应该能看到`Virtio network device`。

    如果一切正常,则无需额外操作。如果安装时因驱动问题使用了模拟设备,现在需要安装virtio-drivers包并修改内核引导参数,过程较复杂,这也是为什么前期准备时强调选对设备类型。

  3. 修改SSH配置(安全加固):

    sudo vim /etc/ssh/sshd_config

    建议修改以下几项:

    • Port 22->Port 你的自定义端口: 改为非22端口,减少自动化扫描攻击。
    • PermitRootLogin yes->PermitRootLogin no: 禁止root直接SSH登录。
    • PasswordAuthentication yes->PasswordAuthentication no: 禁用密码登录,强制使用密钥对,这是最重要的安全措施之一。 修改后重启SSH服务:sudo systemctl restart sshd务必在禁用密码登录前,先将你的公钥(~/.ssh/authorized_keys)添加到服务器上,否则会被锁在外面!
  4. 配置防火墙:Ubuntu 22.04默认使用ufw(Uncomplicated Firewall)。

    sudo ufw allow 你的SSH端口/tcp comment 'SSH Access' sudo ufw allow 80/tcp comment 'HTTP' sudo ufw allow 443/tcp comment 'HTTPS' # 按需放行其他端口 sudo ufw enable sudo ufw status verbose

4. 性能优化与平台集成调优

系统装好并能用了,但这只是开始。要让Ubuntu在深信服超融合平台上跑出最佳状态,还需要一些针对性的优化。

4.1 虚拟机内部优化

  1. 内核参数调优:编辑/etc/sysctl.conf,添加或修改以下参数,主要针对网络性能和连接数优化。

    # 增加TCP连接缓冲区大小 net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728 # 加快TIME-WAIT sockets回收,适用于高并发短连接服务 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 # 增加系统最大文件描述符数量 fs.file-max = 655350

    执行sudo sysctl -p使配置生效。

  2. 磁盘I/O调度器:对于VirtIO块设备(通常是/dev/vda这样的设备),使用none(Noop)或kyber调度器可能更适合虚拟化环境,能减少I/O延迟的抖动。检查当前调度器:

    cat /sys/block/vda/queue/scheduler

    临时修改:echo kyber > /sys/block/vda/queue/scheduler。永久修改需要修改GRUB参数或使用udev规则。

  3. 安装并配置QEMU Guest Agent:这不是必须的,但强烈推荐。QEMU Guest Agent(简称GA)是一组运行在虚拟机内部的守护进程和服务,它能实现宿主机与虚拟机之间更高级的交互。

    • 功能:支持优雅关闭/重启虚拟机、从宿主机获取虚拟机内部IP地址、冻结文件系统(用于创建一致性快照)、上报内存/磁盘使用率等。
    • 安装:
      sudo apt update sudo apt install -y qemu-guest-agent sudo systemctl enable --now qemu-guest-agent

    安装后,在深信服超融合平台的管理界面上,找到这台虚拟机,看看是否能正常获取到其内部IP,以及是否支持“发送关机信号”等功能。这能极大提升运维体验。

4.2 平台侧资源配置调整

虚拟机内部的优化是“内功”,平台侧的配置则是“外力”。

  1. CPU与内存热添加:我们在创建虚拟机时开启了热添加功能。在Ubuntu内部,还需要确保内核支持并正确响应。

    • CPU热添加:Linux内核默认支持。热添加CPU后,可以通过lscpu查看新增的CPU核心。但操作系统可能不会立即在所有进程间平衡负载,有时需要重启关键服务或调整进程的CPU亲和性。
    • 内存热添加:需要虚拟机内存以“ballooning”气球驱动方式运行,并且客户机内安装了virtio-balloon驱动(Ubuntu默认包含)。热添加内存后,通过free -h查看,新增的内存会显示在“total”中,但“available”可能不会立即增加,这部分内存通常作为缓存或缓冲区使用。对于需要大内存的应用,规划时一次性给足比热添加更稳定。
  2. 存储性能策略:如果虚拟机运行数据库等IO密集型应用,可以在平台侧为该虚拟机的磁盘应用更高的IOPS/QoS策略。例如,设置最低保证IOPS和最高限制IOPS,确保其性能稳定,且不会过度影响同一存储池上的其他虚拟机。

  3. 资源监控与告警:在深信服超融合平台上,为这台Ubuntu虚拟机设置资源监控和告警阈值。例如,当CPU持续使用率超过80%达5分钟,或内存使用率超过90%时,发送邮件或短信告警。这能帮助你提前发现潜在的性能瓶颈。

5. 常见问题与故障排查实录

在实际部署和运维过程中,总会遇到一些“坑”。这里记录几个典型问题及其排查思路。

5.1 安装阶段问题

问题1:从ISO启动后,屏幕黑屏或卡在“Loading initial ramdisk”界面。

  • 可能原因:图形化安装界面与虚拟显卡驱动不兼容;或ISO镜像损坏。
  • 排查步骤:
    1. 检查ISO镜像的MD5/SHA256校验和。
    2. 尝试使用“服务器版”镜像而非“桌面版”。
    3. 在虚拟机配置中,尝试修改显卡类型(如从“标准VGA”改为“VMware SVGA”或“Cirrus”),但深信服平台可能选项有限。
    4. 最可靠的方法是:在安装启动时,快速按下E键(针对GRUB引导菜单),在Linux命令行末尾添加nomodeset参数,这会禁用内核模式设置,强制使用基本显示驱动。安装完成后再安装合适的显卡驱动(对于服务器,通常不需要)。

问题2:安装过程中无法识别网络,导致无法配置镜像源和更新。

  • 可能原因:虚拟机网络适配器类型选择错误(如选了IDE/SATA控制器对应的老式网卡模拟)。
  • 解决方案:
    1. 临时方案:关机,将网络适配器类型改为E1000VMXNET3(如果平台支持)这类被Ubuntu安装镜像广泛支持的模拟网卡。完成系统安装。
    2. 根本解决:系统安装后,安装virtio-net驱动包(通常包含在linux-modules-extra或特定包中),然后关机,再将网络适配器类型改回VirtIO所以,创建时直接选VirtIO是最省事的。

5.2 运行阶段问题

问题3:虚拟机内部磁盘性能远低于预期。

  • 排查思路:
    1. 平台侧检查:登录超融合管理平台,查看该虚拟机所在主机的存储池性能监控,看是否有瓶颈(如延迟高、IOPS饱和)。检查该虚拟机的磁盘是否放在了性能较低的存储类型上。
    2. 虚拟机内部检查:
      # 使用fio工具进行简单磁盘性能测试 sudo apt install -y fio # 测试顺序读写 fio --name=seqread --ioengine=libaio --rw=read --bs=128k --numjobs=1 --size=1G --runtime=60 --time_based --group_reporting fio --name=seqwrite --ioengine=libaio --rw=write --bs=128k --numjobs=1 --size=1G --runtime=60 --time_based --group_reporting # 查看磁盘调度器 cat /sys/block/vda/queue/scheduler # 查看磁盘是否使用VirtIO驱动 lsblk -d -o NAME,TRAN
    3. 可能原因与解决:
      • 驱动问题:确认使用VirtIO驱动。
      • 调度器问题:尝试更换I/O调度器。
      • 文件系统问题:对于频繁小文件读写,ext4的默认参数可能不是最优。可以考虑使用xfs文件系统,或在挂载时使用noatime, nodiratime选项减少元数据更新。
      • 平台限速:检查平台是否对该磁盘设置了较低的IOPS限制。

问题4:通过平台控制台可以登录,但SSH无法连接。

  • 排查步骤(从内到外):
    1. 虚拟机内部:通过控制台登录,检查SSH服务状态:sudo systemctl status ssh。检查防火墙规则:sudo ufw status。检查SSH配置文件/etc/ssh/sshd_config,确认监听端口和允许的认证方式。
    2. 平台网络:在深信服平台检查该虚拟机所属的端口组或安全组规则,是否放行了目标SSH端口的流量。检查虚拟机的IP地址是否与预期一致。
    3. 物理网络:如果SSH是从外部网络发起,还需要检查物理防火墙或核心交换机的ACL规则。

问题5:虚拟机偶发性卡顿或无响应。

  • 可能原因:
    • 资源争抢:宿主机物理资源(CPU、内存、存储IO)过度超分,当负载高峰时,虚拟机无法获得足够资源。查看平台监控,检查该宿主机及集群的整体资源使用率。
    • 存储延迟抖动:存储池性能不稳定,可能是底层磁盘故障、缓存策略问题或网络延迟。查看存储性能监控指标。
    • 内存气球(Ballooning)驱动问题:如果启用了内存超分和气球驱动,当宿主机内存压力大时,会通过气球驱动回收虚拟机内存,可能导致虚拟机内应用性能下降甚至OOM(内存溢出)。对于性能要求严格的虚拟机,可以考虑关闭内存超分或设置内存预留。

5.3 平台操作问题

问题6:虚拟机快照创建失败或耗时极长。

  • 理解快照原理:在超融合平台,快照通常是一种“写时复制”(Copy-on-Write)技术。创建快照瞬间完成,但之后虚拟机产生的所有新数据都会写入新位置,原磁盘数据被冻结。快照链过长或虚拟机写入量巨大,会导致性能下降。
  • 最佳实践:
    • 快照不是备份:重要数据必须有独立的备份方案。
    • 快照宜少不宜多:避免长期保留大量快照,尤其是生产环境。快照应作为短期操作(如升级前)的回滚点,操作完成后尽快删除或合并。
    • 在业务低峰期操作:创建或删除快照会带来额外的I/O开销。
    • 确保有足够存储空间:快照会占用额外的存储空间。

问题7:虚拟机迁移(vMotion/热迁移)失败。

  • 常见原因:
    • 共享存储:热迁移要求虚拟机的磁盘必须放在共享存储上(超融合的分布式存储本身就是共享存储,通常满足条件)。
    • CPU兼容性:如果集群内主机CPU型号差异较大,可能需要在平台开启“CPU兼容性模式”(如Intel的EVC模式),但这可能会损失一些新CPU特性。
    • 网络带宽不足:迁移过程需要传输内存状态,对网络带宽和延迟敏感。确保管理/迁移网络有足够的带宽(建议万兆)。
    • 虚拟机状态:如果虚拟机正在进行大量内存写入(如内存测试、大数据处理),迁移会难以收敛。可以尝试在业务低峰期迁移。

部署本身只是第一步,真正的价值在于后续的稳定运行和高效运维。在深信服超融合平台上运行Ubuntu,你获得了一个高度集成、弹性伸缩的基础单元。无论是横向扩展成集群,还是纵向调整资源配置,都变得非常方便。我个人的体会是,前期把规划做细,尤其是存储和网络的选择,中期把系统优化做到位,后期利用好平台的监控和运维功能,这套组合就能成为支撑业务创新的可靠基石。最后一个小建议,定期检查平台和系统的日志,很多潜在问题在日志里早有征兆,养成主动查看日志的习惯,能让运维工作从“救火”变为“防火”。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询