Solaris 10 虛擬機探究(1)

Solaris 10 虛擬機探究:

一、前言                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
1.1 Solaris 10 Zone簡介                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    Solaris 操作系統中的 Solaris Zones[1][2] 功能是一種用於虛擬化操作系統服務的分區技術,可提供安全的隔離環境以便承載和運行各種應用程序。
    區域是指在 Solaris 操作系統的單個實例中創建的一個虛擬的操作系統環境。
    區域有兩種類型:全局區域 (global zone) 和非全局區域 (non-global zone)。
                                                                                                                                                                                                                                      
    全局區域包含一次 Solaris OS 的完全正常運行的安裝,該安裝可由系統硬件來引導。通過系統硬件引導的 Solaris OS 安裝過程安裝的即是全局區域。
    一個系統中只能運行一個全局區域。全局區域管理員可使用 zonecfg(1M) 和 zoneadm(1M) 來創建非全局區域。全局區域控制所有非全局區域的安裝、維護、操作和損毀。                                                                                                                                                                                                                       
    Solaris 10 Zone配合Solaris 10 Containers 可以進在分配操作系統、硬件資源。                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
1.2 區域根文件系統                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
    兩種方式可以配置非全局區域的根文件系統:完全根模型和稀疏根模型。                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    完全根模型將所有必需的軟件包和任何選定的可選 Solaris 軟件包安裝到區域的專用文件系統中,因此可提供最大化的配置能力。
    此模型的優點是:允許區域管理員定製其區域的文件系統佈局(例如,創建 /usr/local),並可以添加任意非隨附或第三方軟件包。
    此模型的缺點是:無法共享虛擬內存系統共享的可執行文件和共享庫中的文本段,並且磁盤使用量也會顯著增加-如此進行配置的每個非全局區域約增加 2 GB。
    全局區域管理員使用 zonecfg(1M) 的子命令 create -b 創建具有完全根模式的區域(或刪除 my-zone.xml 中的 inherited-pkg-dir 目錄)。
    
    稀疏根模型只安裝根軟件包的子集(即將 pkginfo(4) 參數 SUNW_PKGTYPE 設置爲 root 的根軟件包)並使用只讀回送文件系統來訪問其他文件,從而可優化對象的共享。
    這與配置無盤客戶機的方式類似,其中 /usr 和其他文件系統通過網絡與 NFS 掛載。
    使用此模型時,缺省情況下會將目錄 /lib、/platform、/sbin 和 /usr 掛載爲回送文件系統。
    此模型的優點在於可提供更高的性能,原因是可以有效地共享可執行文件和共享庫,並且區域本身的磁盤使用量會小很多。
    稀疏根模型只需要將大約 100 MB 的文件系統空間用於區域本身。                        
    爲了便於管理,我建議使用完全根模型安裝zone分區。                 


配置:完全根模型和稀疏根模型

#修改權限
bash-3.00# chmod 700 -r /export/home/vmtest02


#使用zonecfg命令配置Zone>>1
bash-2.05b# zonecfg -z vmtest02
zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone> create                              
zonecfg:zone> set zonepath = /export/zone
zonecfg:zone> set autoboot = true
zonecfg:zone> add inherit-pkg-dir                 
zonecfg:zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:zone:inherit-pkg-dir> end
zonecfg:zone> add net
zonecfg:zone:net> set physical = elxl0
zonecfg:zone:net> set address = 173.21.73.121
zonecfg:zone:net> end

#使用zonecfg命令配置Zone>>2
A、root@pater # zonecfg -z zone1             
zone1: No such zone configured (提示一個不存在的zone)
Use 'create' to begin configuring a new zone.
B、zonecfg:zone1> create -b (使用Create命令創建zone1分區,使用-b參數使用完全根模型,不帶-b就是稀疏根模型)######
C、zonecfg:zone1> set zonepath=/zone1 (設置分區的操作系統文件存放在/zone1位置)
D、增加網卡
   zonecfg:zone1> add net (增加網卡命令)
   zonecfg:zone1:net> set address=192.168.10.23 (設置zone1分區的ip地址)
   zonecfg:zone1:net> set physical=pcn0 (設置zone1的網卡橋接的哪塊網卡)
   zonecfg:zone1:net> end (結束網卡配置)
E、zonecfg:zone1> verify  (檢驗配置)
F、zonecfg:zone1> commit  (提交配置)

我的測試環境:

## 查看配置文件
bash-3.2# zonecfg -z vmtest02
zonecfg:vmtest02> info 
zonename: vmtest02
zonepath: /export/home/vmtest02
brand: native
autoboot: true
bootargs: 
pool: 
limitpriv: 
scheduling-class: FSS
ip-type: shared
hostid: 
net:
        address: 192.168.233.200
        physical: e1000g0
        defrouter: 192.168.233.2
capped-memory:
        physical: 512M
        [swap: 1G]
        [locked: 512M]
rctl:
        name: zone.max-swap
        value: (priv=privileged,limit=1073741824,action=deny)
rctl:
        name: zone.max-locked-memory
        value: (priv=privileged,limit=536870912,action=deny)
zonecfg:vmtest02> exit
bash-3.2# zonecfg -z vmtest01
zonecfg:vmtest01> info 
zonename: vmtest01
zonepath: /export/home/vmtest01
brand: native
autoboot: true
bootargs: 
pool: 
limitpriv: 
scheduling-class: 
ip-type: shared
hostid: 
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /export/home/oracle
net:
        address: 173.21.73.121
        physical: elxl0
        defrouter 未指定
zonecfg:vmtest01> exit
bash-3.2# 

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

#安裝虛擬機
zoneadm -z vmtest02 install
#啓動虛擬機
zoneadm -z vmtset02 boot
#登陸虛擬機
bash-3.2# zlogin vmtest02
[已連接到區域 'vmtest02' pts/2]
Last login: Mon Mar  9 18:45:40 on pts/6
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005


關閉zone
-bash-3.2$ ls -l
total 2
drwxr-xr-x   4 oracle   oinstall     512 Oct 13 17:08 app
-bash-3.2$ exit
logout
# exit
[與區域 'vmtest02' pts/2 的連接已關閉]
bash-3.2# zoneadm -z vmtest02 halt
bash-3.2# 

#查看虛擬機基本信息
bash-3.2#  zoneadm list -civ
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - vmtest02         installed  /export/home/vmtest02          native   shared
   - vmtest01         installed  /export/home/vmtest01          native   shared
bash-3.2# 

@@@@@@@@@@@@@@@@@2 進程與文件的關係

--外部機器
bash-3.2# hostname
unknown
bash-3.2# 

--虛擬出來機器
-bash-3.2$ hostname
vmtest02OQ
-bash-3.2$ 

--虛擬出來機器
-bash-3.2$ ps -ef|grep lsnr
  oracle  4501  2708   0 20:02:08 ?           0:00 /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -in
-bash-3.2$ 

--父進程關係
-bash-3.2$ ps -ef|grep 2708
    root  2708  2708   0 17:57:16 ?           0:00 zsched
  daemon  2948  2708   0 17:57:20 ?           0:00 /usr/sbin/rpcbind
    root  3375  2708   0 17:58:22 ?           0:00 /usr/lib/sendmail -bl -q15m
    root  3186  2708   0 17:57:23 ?           0:00 /usr/dt/bin/dtlogin -daemon
    root  2720  2708   0 17:57:16 ?           0:01 /lib/svc/bin/svc.startd
    root  2943  2708   0 17:57:20 ?           0:00 /usr/sbin/cron
    root  2718  2708   0 17:57:16 ?           0:00 /sbin/init
...
  oracle  4501  2708   0 20:02:08 ?           0:00 /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -in
    root  3145  2708   0 17:57:22 ?           0:00 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
    root  3136  2708   0 17:57:22 ?           0:00 /usr/sfw/sbin/snmpd
    root  3484  2708   0 18:45:12 pts/6       0:01 -sh
    root  3294  2708   0 17:57:24 ?           0:00 /usr/lib/dmi/dmispd
noaccess  3355  2708   0 17:57:25 ?           0:26 /usr/java/bin/java -server -Xmx128m -XX:+UseParallelGC -XX:ParallelGCThreads=4 
  oracle  4525  4473   0 20:06:45 pts/6       0:00 grep 2708

--虛擬機器
-bash-3.2$ ps -ef|grep lsnr
  oracle  4501  2708   0 20:02:08 ?           0:00 /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -in
  oracle  4528  4473   0 20:07:38 pts/6       0:00 grep lsnr
-bash-3.2$ ls -l /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr
-rwxr-x--x   1 oracle   oinstall 1057088 Oct 13 17:24 /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr
-bash-3.2$ 

--外部機器
bash-3.2# ps -ef|grep lsnr
    lihj  4501     1   0 20:02:08 ?           0:00 /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -in
bash-3.2# 
bash-3.2# ls -l /export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr
/export/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 無此文件或目錄
bash-3.2# 

#################### 虛擬機的進程在外部機器上可以看到的,不過父進程是不一樣的,且外部機器上是沒有文件的!

資源的添加實驗稍後:::


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章