虚拟化技术的多平台实践
1. KVM 安装 Ubuntu 服务器虚拟机
在使用 KVM 进行虚拟化时,为了充分利用其加速功能,建议使用
--accelerate
选项。以下是一个从 CD - ROM 安装 Ubuntu 服务器虚拟机的完整命令示例:
ubuntu$ sudo virt - install --connect qemu:///system -n UbuntuHardy -r 512 -f ~/ubuntu - hardy.img -s 12 -c /dev/dvd --os - type linux --accelerate --hvm --vnc
当插入 Ubuntu 安装 DVD 后,该命令将启动安装过程,并将虚拟机存储在
~/ubuntu - hardy.img
文件中,允许其最大扩展到 12GB。由于未指定
--nographics
或
--vnc
,
virt - install
会询问是否启用图形支持。
virsh
工具提供了一个独立的 shell 来运行命令。打开该 shell 的命令是
virsh --connect qemu:///system
。以下是一些展示
virsh
核心功能的命令示例:
ubuntu$ sudo virsh --connect qemu:///system
virsh # list --all
Id Name State
---------------------------------------------
3 UbuntuHardy running
7 Fedora running
- Windows2003Server shut off
virsh # start Windows2003Server
Domain WindowsServer started
virsh # shutdown FedoraExample
Domain FedoraExample is being shutdown
virsh # quit
不过,KVM 的实时迁移功能仍在不断完善中,不同版本间实现差异较大。不同 CPU 架构系统间的迁移可能需要特殊补丁。在达到一定稳定性之前,不建议在生产环境中依赖 KVM 实时迁移。
2. Solaris 区域和容器
在 2005 年左右发布的 Solaris 10 中,Sun 引入了区域(zones)和容器(containers),率先将操作系统级虚拟化带入系统管理领域。丰富的在线文档和活跃的社区支持使得该技术在商业领域得到广泛接受和应用。
2.1 基本概念
- 区域和容器 :“区域”和“容器”这两个术语在很大程度上可以互换。严格来说,区域是一个受保护的执行环境,而容器是区域加上资源管理。在实际应用中,这两个术语含义相同。
- 全局区域和非全局区域 :所有 Solaris 系统都有一个“全局区域”,它运行系统的内核和所有进程,包括其他区域中的进程。非全局区域是与全局区域并行运行的虚拟 Solaris 系统。非全局区域的网络流量和进程对其他非全局区域不可见,但全局区域可以看到所有进程活动。为了安全起见,应限制系统管理员对全局区域的访问。
- 区域类型 :有全根(whole - root)和稀疏(sparse)两种类型的区域。全根区域包含自己的操作系统文件副本和独立的文件系统,但需要更多的存储空间。稀疏区域与全局区域共享许多文件系统,并以只读方式挂载。
- 资源池 :资源池是系统资源(如处理器)的集合,可以在各个区域之间分配。所有系统至少有一个默认资源池,它包含系统的所有资源。所有区域(包括全局区域)必须至少有一个资源池。可以创建多个资源池来在运行的区域之间分配可用的系统资源。一个资源池由至少一个资源集(目前仅限于 CPU 资源的划分)和一个调度算法组成。多个区域可以共享一个资源池,调度器将决定使用该资源池的区域之间如何共享 CPU 使用率。这里主要介绍最流行的“公平份额调度”算法。
以下是一个具体示例,假设有一个运行两个物理 CPU 的系统,要运行两个虚拟 Solaris 系统:一个运行需要至少一个完整 CPU 的专有应用程序,另一个运行没有特定资源要求的轻量级 Web 服务器。该系统有三个容器(分别用于专有软件、Web 服务器和原始全局 Solaris 实例)、三个区域(分别用于专有应用程序、Web 服务器和全局)以及两个资源池(每个资源池包含一个 CPU)。Web 服务器和全局区域共享默认资源池,使用公平份额调度算法,每个区域有一份份额,意味着 CPU 资源将在全局和 Web 服务器区域之间平均分配。专有应用程序使用一个独立的资源池,拥有专用的 CPU。
2.2 管理工具和操作步骤
Solaris 提供了几个命令行工具来管理容器、区域和资源,主要包括
zonecfg
、
zoneadm
、
poolcfg
和
pooladm
。
-
资源池操作
- 启用资源池:
solaris$ sudo pooladm -e
- 查看资源池状态:
solaris$ sudo pooladm
- 创建新资源池:
solaris$ sudo poolcfg -c 'create pset proprietary - pset (uint pset.min = 1; uint pset.max = 1)'
solaris$ sudo poolcfg -c 'create pool proprietary - pool'
solaris$ sudo pooladm -c
-
区域操作
- 配置区域:
solaris$ sudo zonecfg -z proprietary - zone
zonecfg:proprietary - zone> create
zonecfg:proprietary - zone> set zonepath = /zones/proprietary - zone
zonecfg:proprietary - zone> set autoboot = true
zonecfg:proprietary - zone> add net
zonecfg:proprietary - zone:net> set address = 192.168.10.123
zonecfg:proprietary - zone:net> set physical = e1000g0
zonecfg:proprietary - zone:net> end
zonecfg:proprietary - zone> set pool = proprietary - pool
zonecfg:proprietary - zone> verify
zonecfg:proprietary - zone> commit
zonecfg:proprietary - zone> exit
- 安装和启动区域:
solaris$ sudo zoneadm -z proprietary - zone install
solaris$ sudo zoneadm -z proprietary - zone boot
solaris$ sudo zoneadm list
3. AIX 工作负载分区
IBM 在虚拟化领域有着悠久的历史,早在 20 世纪 60 年代就开创了这一概念。直到 2007 年末 AIX 6.1 发布,AIX 才引入软件虚拟化。任何能够运行 AIX 6 的系统都支持工作负载分区(WPARs)。
3.1 WPARs 特点
WPARs 在隔离的执行环境中运行,进程只能与同一分区中的对等进程通信。全局环境中的信号和事件不会影响分区,反之亦然。WPARs 可以有自己的专用网络地址。
3.2 WPARs 类型
-
系统 WPAR
:仅与全局环境(本质上是主机)共享 AIX 内核。在系统 WPAR 中运行的应用程序认为自己在一个独立的 AIX 安装中运行,拥有自己的
inetd守护进程以实现网络自治。 - 应用程序 WPAR :在隔离环境中运行单个应用程序。它与全局环境共享所有文件系统,不能提供远程访问功能。应用程序完成后,应用程序 WPAR 退出。
3.3 管理工具和操作步骤
IBM 提供了几个工具来管理 WPARs。以下是使用命令行界面的操作示例:
-
创建系统 WPAR
:
aix$ sudo mkwpar -n mario
创建完成后,使用
startwpar mario
启动 WPAR。可以使用
lswpar
列出 WPARs:
aix$ sudo lswpar
Name State Type Hostname Directory
------------------------------------------------------------
mario A S mario /wpars/mario
使用
clogin mario
以 root 身份连接到控制台。
-
创建更复杂的系统 WPAR
:
aix$ sudo mkwpar -n mario -r -l -N interface = en3 address = 192.168.10.15 netmask = 255.255.255.0 broadcast = 192.168.10.255 -R active = yes CPU = 5% - 15%,25%
-
修改和删除 WPAR
:使用
chwpar修改分区,使用stopwpar停止分区,使用rmwpar永久删除分区。 -
创建应用程序 WPAR
:使用
wparexec创建应用程序 WPAR,例如运行 Apache:
wparexec /usr/local/sbin/httpd
4. HP - UX 中的 Integrity 虚拟机
HP 的虚拟化方法较为复杂,在独立的低端服务器上,Integrity 虚拟机软件在多个来宾操作系统之间共享硬件资源。对于多核的大型系统,HP 有更强大的软件分区技术,即虚拟分区(vPars)。此外,硬件分区服务(nPartitions)在运行的服务器之间提供真正的电气级分离。这些技术与 HP 的集群软件一起被统称为虚拟服务器环境。
4.1 IVM 特点
Integrity 虚拟机(IVM)是一种全虚拟化技术,未经修改的 Windows 和 Linux 版本可以在 HP - UX 主机上运行。每个来宾被分配预配置比例的 CPU 时间,内存和存储分配也可以调整。可以配置无限数量的来宾,但运行的虚拟机数量上限为 256 个。
4.2 网络连接组件
来宾机器的网络连接由三个组件组成:
- 主机中的物理网络适配器(pNIC)
- 来宾网络适配器(虚拟 NIC 或 vNIC)
- 虚拟交换机(vswitch),用于在主机和一个或多个来宾之间创建网络
4.3 创建和安装虚拟机步骤
- 创建存储资源 :
hp - ux$ sudo mkfs -F vxfs -o largefiles /dev/disk/disk3
hp - ux$ sudo mount /dev/disk/disk3 /vdev/vm0disk/
hp - ux$ sudo hpvmdevmgmt -S 8G /vdev/vm0disk/disk1
- 创建虚拟交换机 :
hp - ux$ lanscan
hp - ux$ sudo hpvmnet -c -S vm0switch -n 0
hp - ux$ sudo hpvmnet -b -S vm0switch
- 创建和启动虚拟机 :
hp - ux$ sudo hpvmcreate -P vm0 -O hpux -r 2G -a network:lan:vswitch:vm0switch -a disk:scsi::file:/vdev/vm0disk/disk1
hp - ux$ sudo hpvmstart -P vm0
-
安装和管理虚拟机
:使用
hpvmconsole -P vm0连接到控制台,使用<Control - B>断开连接。使用hpvmstatus -P vm0检查来宾状态。
综上所述,不同操作系统的虚拟化技术各有特点和适用场景,管理员可以根据实际需求选择合适的虚拟化方案,并按照相应的操作步骤进行部署和管理。
虚拟化技术的多平台实践
5. 各虚拟化技术对比总结
为了更清晰地了解不同操作系统虚拟化技术的特点,下面通过表格进行对比总结:
| 操作系统 | 虚拟化技术 | 特点 | 适用场景 | 管理工具 |
| — | — | — | — | — |
| KVM | 基于内核的虚拟机 | 支持多操作系统,可利用加速功能,实时迁移待完善 | 一般虚拟化需求,对性能有一定要求 | virt - install、virsh |
| Solaris | 区域和容器 | 提供操作系统级虚拟化,有多种区域类型和资源池管理 | 商业环境,对资源分配和隔离有要求 | zonecfg、zoneadm、poolcfg、pooladm |
| AIX | 工作负载分区(WPARs) | 进程隔离性好,有系统和应用程序两种类型 | IBM AIX 系统,需要隔离不同工作负载 | mkwpar、startwpar、lswpar 等 |
| HP - UX | Integrity 虚拟机 | 全虚拟化技术,支持多来宾操作系统,网络和存储配置灵活 | HP - UX 主机,需要运行多种操作系统 | hpvmcreate、hpvmstart、hpvmconsole 等 |
6. 虚拟化技术的应用案例分析
6.1 企业数据中心整合
某大型企业的数据中心存在大量低利用率的物理服务器,为了提高资源利用率、降低能耗和管理成本,决定采用虚拟化技术进行整合。
-
方案选择
:考虑到企业服务器操作系统的多样性,包括 Linux、Windows 和 Solaris 等,综合使用 KVM 和 Solaris 区域和容器技术。对于 Linux 服务器,使用 KVM 创建虚拟机;对于 Solaris 服务器,利用区域和容器进行虚拟化。
-
实施步骤
-
规划资源池
:根据服务器的硬件资源和业务需求,在 Solaris 系统中创建多个资源池,为不同的区域分配合适的资源。同时在 KVM 中合理分配 CPU、内存和存储资源给虚拟机。
-
迁移服务器
:将现有的物理服务器迁移到虚拟机或区域中。对于 Linux 服务器,使用 KVM 的迁移工具;对于 Solaris 服务器,按照区域创建和安装的步骤进行操作。
-
监控和优化
:使用管理工具对虚拟机和区域的运行状态进行监控,根据业务负载动态调整资源分配,确保系统的高效运行。
-
效果评估
:通过虚拟化整合,企业数据中心的服务器数量大幅减少,资源利用率显著提高,能耗降低了约 30%,管理成本也得到了有效控制。
6.2 开发测试环境搭建
某软件开发公司需要为开发团队和测试团队搭建独立的开发测试环境,以提高开发效率和保证测试结果的准确性。
-
方案选择
:采用 AIX 工作负载分区(WPARs)技术,为每个项目或团队创建独立的 WPAR,实现资源隔离和环境独立。
-
实施步骤
-
创建 WPARs
:根据项目和团队的需求,使用
mkwpar
命令创建不同类型的 WPARs,如系统 WPAR 或应用程序 WPAR。
-
配置资源
:通过
mkwpar
命令的参数,为每个 WPAR 分配合适的 CPU、内存和网络资源。
-
部署应用
:将开发和测试的应用部署到相应的 WPAR 中,确保各个环境的独立性。
-
效果评估
:使用 WPARs 搭建的开发测试环境,各个项目和团队之间互不干扰,开发和测试效率得到了显著提高,同时也降低了环境配置和管理的复杂度。
7. 虚拟化技术未来发展趋势
- 性能优化 :随着硬件技术的不断发展,虚拟化技术将进一步优化性能,提高资源利用率。例如,通过更高效的调度算法和硬件加速技术,减少虚拟化带来的性能损耗。
- 安全增强 :虚拟化环境中的安全问题日益受到关注,未来的虚拟化技术将加强安全防护机制,如提供更细粒度的访问控制、数据加密和漏洞检测等功能。
- 跨平台整合 :为了满足企业多样化的需求,虚拟化技术将更加注重跨平台整合,实现不同操作系统和硬件平台之间的无缝连接和资源共享。
- 自动化管理 :自动化管理工具将成为虚拟化技术的重要发展方向,通过自动化脚本和人工智能算法,实现虚拟机和区域的自动创建、部署和管理,提高运维效率。
8. 总结与建议
不同的虚拟化技术在功能、性能和适用场景上各有优劣,企业在选择虚拟化方案时,应根据自身的业务需求、服务器硬件配置和操作系统类型等因素进行综合考虑。同时,在实施虚拟化项目时,要做好规划和准备工作,确保资源的合理分配和系统的稳定运行。对于虚拟化技术的未来发展,企业应保持关注,及时引入新的技术和工具,以提高自身的竞争力。
以下是一个简单的 mermaid 流程图,展示了创建虚拟机的通用流程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(规划资源):::process
B --> C(创建存储资源):::process
C --> D(创建网络资源):::process
D --> E(创建虚拟机):::process
E --> F(安装操作系统):::process
F --> G(配置虚拟机):::process
G --> H(启动虚拟机):::process
H --> I{是否正常运行?}:::decision
I -->|是| J([结束]):::startend
I -->|否| K(排查问题):::process
K --> B
希望通过本文的介绍,能让读者对虚拟化技术在不同操作系统中的应用有更深入的了解,并为实际工作中的虚拟化部署和管理提供参考。
超级会员免费看
3999

被折叠的 条评论
为什么被折叠?



