introduction :
1996年SUN公司在E10000系列服务器 产品上采用了静态分区技术 。这些分区或者也可以叫做“域”的东西,是通过一组物理硬件资源定义出来的。这样的物理硬件资源可以是一些处理器资源、内存资源以及I/O总线资源的组合。“域”也可以拥有多组硬件资源。每个“域”可以运行独立的Solaris 副本。1999年SUN公司将这种成为“域”的虚拟技术进行了动态化改造,形成了后来的DSD分区,这些DSD分区可以从一个域迁移到另一个域。
2002年的时候,SUN公司又推出了一项叫做“容器container“的 虚拟化 技术 。 容器技术只需运行一份solaris操作系统软件,但对这份solaris里的资源进行了优化和提效,使得虚拟出多份特制的solaris资源供应用程序 相对独立地运行。这种虚拟化的实质是在Solaris操作系统软件中强化了内置的系统资源管理模块(SRM),从Solaris9开始,这种模块被内置入 solaris系统中。SRM被用来做”域“之间的资源管理,比如管理CPU使用率、虚拟内存管理、最大处理器数量、最大用户登录数以及连接时间磁盘空间 管理等等。
跟IBM公司的做法类似,SUN公司也喜欢将差不多意思的概念进行频繁的改名:”域“的叫法最近又换成了”区域(Zone) “,是Solaris10中的虚拟化技术叫法。根据SUN公司自己的说法,这些虚拟化概念是从BSD系统的”jail“概念衍生出来的。Zone也叫做” 可信任的容器“。为应用程序提供虚拟化的”机器环境“。这种虚拟化技术的实现中只运行了一份Solaris操作系统 内核。但内核里的一些重要模块被提取形成了很多独立的执行小环境。
Env test:
在ESX server 上安装 sol-10-u5-ga-x86-dvd.iso (32位), 然后再 安装好的 Solaris10 OS上 在虚拟出一个zone
Step:
1. 在虚拟机上安装 Solaris1u5,具体的安装步骤参考 附件中的文档
2. 系统安装和linux一样,没有什么花花,安装成功后 进入console 设置IP,安装过程中也有设置ip的步骤,可能我没弄好吧,重新设置IP
1.修改/etc/hosts文件
这个文件中指定ip地址与别名的对应关系,如果以后要修改ip地址,修改这个文件的ip就可以
# cat /etc/hosts
127.0.0.1 localhost
10.24.8.207 testsvr.com testsvr loghost
为避免系统报找不到本机机器名的错误,一定按照上面的样子配置IP 。
2.编辑网络接口文件
修改接口文件,如果不存在就直接创建,这个文件确定网络接口、别名、ip三者的对应关系。
有几个网卡,就有几个hostname.<接口名> 文件
这个文件只有一行内容,对应于/etc/hosts文件中ip地址后的别名
# cat /etc/hostname.ce0
testsvr
3.修改默认网关的配置
# cat /etc/defaultrouter
10.24.8.1
4.修改子网掩码配置
# cat /etc/netmasks
10.24.8.207 255.255.255.0
5.DNS设置
如果机器需要通过域名访问其他服务器,则必须配置DNS
#cat /etc/resolv.conf
domainname testsvr.com
nameserver 10.24.7.7
当然,也可以在/etc/hosts文件中追加要访问的服务器的IP 和域名信息。
但是,如果使用/etc/resolv.conf 的话,必须同时修改 /etc/nsswitch.conf 的这一行
hosts: files
改为
hosts: files dns
3. 使用 ping -s ip 的方式检测 IP设置成功是否,当ip设置成功后,需要开启 Solaris 的ssh 服务
svcadm restart ssh
然后使用sercueCRT 远程连接 solaris系统,发现 root用户 的口令是正确的 可是就是不能ssh 到系统上,这个原因是solaris 有更加严格的安全措施,不允许root用户 远程ssh , 它只允许非root用户 ssh 到系统上,然后su 到root 用户下,如何解决呢?其实只需要改一个配置文件即可
如果想直接用root登陆,则修改如下配置文件:
vi /etc/ssh/sshd_config
找到其中的如下一行,将前边的#符号去掉,并修改no为yes
#PermitRootLogin no
改成:
PermitRootLogin yes
接下来执行如下命令重新启动SSH服务:
xxx# svcadm restart ssh
xxx#
重新启动完成后,ssh即可登陆
3. 当确定 global 的zone没有什么问题后,我们就开始虚拟一个 local的zone,名字就叫 vmsrv2吧
a.先查看下 都有什么zone,可以看到有一个global的域
# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
b. 首先建立一个文件夹,用来存放 这个local 的 zone
cd /opt
mkdir -p zones/vmsrv2
c. 具体的步骤
xiaochen@solaris:/# cd /
xiaochen@solaris:/# mkdir rpool/zones 创建虚拟机存放目录(目录名可以自己取)
xiaochen@solaris:/#zfs create rpool/zones 重要
xiaochen@solaris:/# mkdir rpool/zones/test 创建虚拟机test
xiaochen@solaris:/#zfs create rpool/zones/test 重要
xiaochen@solaris:/# zonecfg -z test 配置虚拟机test
test: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:test> create 开始配置
zonecfg:test> set zonepath=/rpool/zones/test 设置虚拟机存放位置
zonecfg:test> set autoboot=true 设置可以自动启动
zonecfg:test> add net 添加网卡
zonecfg:test:net> set address=192.168.10.202 设置IP地址
zonecfg:test:net> set physical=e1000g0 设置使用哪个真实的网卡
zonecfg:test:net> set defrouter=192.168.10.1 设置默认网关
zonecfg:test:net> end 退出配置
zonecfg:test>info 查看配置信息
zonename: test
zonepath: /rpool/zones/test
brand: ipkg
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
hostid:
net:
address: 192.168.10.202
physical: e1000g0
defrouter: 192.168.10.1
按Q键退出
zonecfg:test> verify 确定是否有错误
zonecfg:test> commit 提交
zonecfg:test> CTRL+D 退出
xiaochen@solaris:/# chmod 700 /rpool/zones/test 改变目录权限
xiaochen@solaris:/# zoneadm -z test install 安装虚拟机test
安装完大约10多分钟
登陆到zone1虚拟机:
xiaochen@solaris:/#zoneadm -z zone1 boot 启动虚拟机
xiaochen@solaris:/#zlogin -C zone1 登陆到zone1虚拟机
输入:2
Host name for pcn0:1: test 随便自己输入主机名字
Esc+2
Esc+2
配置完成后启动SSHD 远程登陆
#svcadm restart ssh 启动SSHD服务
# ~. 退出虚拟机。
就可以用putty软件SSH远程登陆了。
poweroff 这个命令可以关机为zone1虚拟机
删除虚拟机和配置文件:
zoneadm -z $ZONE halt
zoneadm -z $ZONE uninstall -F
zonecfg -z $ZONE delete -F
Mickael ' s expamle:
$dladm show-link
$zfs list
$pfexec dladm show-link
$pfexec dladm
$dladm show-phys
$dladm show-link
$pfexec dladm create-vnic -l e1000g0 try1
$dladm show-link
$zfs list
$pfexec zfs create rpool/myzonedatastoragepath
$zfs list
$pfexec zonecfg -z try1
$zoneadm -z try1 install
$pfexec zoneadm -z try1 install
在看下 有什么 zone
# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
1 vmsrv2 running /opt/zones/vmsrv2 native shared
d. 一些zone 操作的命令
关闭local zone
# zoneadm -z vmsrv2 halt
重新引导local zone
# zoneadm -z vmsrv2 reboot
执行如下命令可以查看zone的运行状态
# zoneadm list -iv
停止local zone
# zoneadm -z vmsrv2 halt
卸载local zone
# zoneadm -z vmsrv2 uninstall
删除local zone配置
# zonecfg -z vmsrv2 delete
residual problem:
1. 新建立的 vmsrv2 ip配置没有问题,里外都能通,可是外部不能远程ssh,我已经确定ssh服务已经开启,并且不能使用global zone的 root ssh 的解决方案
2. 给 vmsrv2 配置 网关的时候总是报错
zonecfg:test:net> set defrouter=192.168.10.1 设置默认网关
quote :
0. 新手入门:Solaris 10系统安装图解
http://publish.it168.com/2005/0627/20050627001314.shtml
1. 设置 IP
http://blog.csdn.net/lyr1985/archive/2010/11/20/6023434.aspx
2. 让Solaris 10的root可以远程SSH登录方法
http://www.unixcom.cn/thread-4217-1-1.html
3. Solaris 上的虚拟化技术
http://blog.ixpub.net/html/04/12659204-164092.html