Solaris 虚拟化实践

 

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

扫描二维码关注公众号,回复: 1362913 查看本文章

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

猜你喜欢

转载自8366.iteye.com/blog/1057571