相信大家对虚拟化分区(
virtualization and partitioning technology)
技术都不陌生了,从Sun Fire[TM] 3800服务器开始,就有了硬件分区及系统域(System
Domains)的技术,这时的分区粒度(granularity)是每个系统域至少要有1个CPU/MEM板和一个I/O板。Solaris
10引入了ZONE(也称为Container)的技术,通过此技术,可以在系统上创建多个逻辑上独立的操作系统实例(instance),每个实例可以
运行其自己的程序集并且相互之间没有任何干扰。即便是单CPU的系统,也可以创建多个ZONE,只要你的系统资源足够创建并运行这么多实例。
随着Solaris 10 11/06版的发布,一种新的虚拟化分区技术--逻辑域(Logical Domains以下简称LDOMs)呈现在大家的面前。System Domains、LDOMs和ZONE三者之间有什么关系呢?下面是一个简单的示意图:
|
Zone(Container)
|
LDOMs
|
System Domains
|
Operating System
|
|
|
|
Firmware Level
|
|
|
|
Harware Platform
|
|
|
|
上面的示意图简化了很多细节,主要是为了突出LDOMs与Zone和System
Domains之间的关系。我们可以看到LDOMs是建立在Firmware至上的,即LDOMs不光需要操作系统的支持,也需要Firmware的支
持。那么需要什么样的Firmware支持的?
LDOMs是靠在操作系统和硬件层之间的Firmware(flash PROM)中加入一个叫做hypervisor的软件来实现虚拟化分区的。目前支持这种hypervisor软件的平台只有和系统(即sun4v平台体系架构服务器)。这就是为什么现在LDOMs只能用于和系统的原因。
为了能够正确的与hypervisor通信,操作系统必须有相关的支持。目前只有Solaris 10
11/06才能支持hypervisor(还需要相关补丁),对于Solaris 8和Solaris
9,并没有计划对sun4v的支持(Solaris 10功能如此强大,为什么强扭着Solaris 8和Solaris
9不放呢),因此在LDOMs虚拟分区安装的Guest OS也必须是Solaris 10
11/06(之前可能有很多朋友以为LDOMs支持不同版本的Solaris,现在看来是不行的)。
和服务器有8个core,每个core有4个thread,LDOMs技术可以将每个thread划分到一个虚拟分区。
为了实现LDOMs,我们需要以下的条件:
-
sun4v平台服务器--目前仅有和服务器
-
Firmware 6.4.0
-
Solaris 10 11/06 + 补丁:124921-02或更高版本、125043-01或更高版本
-
当系统满足以上条件后,就可以配置LDOMs。为了管理LDOMs,必须要先建立一个控制域Control Domain(也称为Primary Domain),有点类似于一些服务器的控制器。只有控制域建立好之后,你才能够开始其它逻辑域的创建。
LDOMs按照其角色可以分为以下几类:
-
Control domain -- 上面已经提到,用来创建并管理其它的逻辑域和服务,及与hypervisor的通信
-
Service domain -- 为其它逻辑域提供虚拟网络交换、虚拟磁盘服务等的逻辑域
-
I/O domain -- 具有对输入/输出设备直接的物理链接,比如PCI-E卡或者网络设备等。
-
Guest Domain -- 使用Service domain和I/O domain提供的服务,并受Control domain的管理。
LDOMs支持对CPU的动态配置(Dynamic Reconfiguration),对Memory或者其它部件,LDOMs提供延迟配置(Delayed Reconfiguration),即要等到下一次重启才生效。
几点说明:
-
所有LDOM的操作系统必须是Solaris 10 11/06,并且已经安装了相关补丁
-
如果Control domain出现故障,则会影响到其它所有LDOM。Control domain是SPOF(Single-Point-Of-Failure)
-
如果提供服务的LDOM出现故障,则所有使用其服务的LDOM都会受到影响。Service LDOM是SPOF。
使用Ldom
1. 配置primary domain
-
Create virtual disk service
-
# ldm add-vds primary-vds0 primary
-
-
Create virtual console
-
# ldm add-vcc port-range=5000-5100 primary-vcc0 primary
-
-
Add virtual switch
-
# ldm add-vsw net-dev=e1000g0 primary-vsw0 primary
-
-
Create control domain and give it services. T4-X’s don’t need the SSL chip settings :), if you aren’t using a T4-x system, then set-mau is needed.
-
# ldm set-mau 0 primary
-
# ldm set-vcpu 4 primary
-
# ldm start-reconf primary
-
# ldm set-memory 4G primary
-
-
Adding and setting spconfig to initial
-
# ldm add-spconfig initial
-
# shutdown -i6 -g0 now
-
-
Configuring the network component enabling networking between control and service domain needs to be done from the console. Otherwise you will blow your knees out from under you. Then it gets awkward :)
-
# ifconfig vsw0 plumb
-
# ifconfig e1000g0 down unplumb
-
# fconfig vsw0 147.28.18.28 netmask 0xffffff00 broadcast + up
-
# mv /etc/hostname.e1000g0 /etc/hostname.vsw0
-
-
Enable vntsd
-
# svcadm enable vntsd
-
# reboot
复制LDOM可以参考这篇文章: http://seriousbirder.com/blogs/solaris-how-to-clone-ldom/
更多信息,请参见《》 和 SUN BLUEPRINTS《》
转载自:http://blogs.oracle.com/swan/entry/logical_domains_aka_ldoms
阅读(1313) | 评论(0) | 转发(0) |