linux目前流行的開源虛擬化技術解決方案:
主機虛擬化:xen, kvm, virtualbox
容器級:lxc, libcontainer, runc, openvz
模擬器:qemu
kvm模組load進記憶體之後,系統的執行模式:
核心模式:guestos執行io類的操作時,或其它的特殊指令操作時的模式;它也被稱為「guest-kernel」模式;
使用者模式:host os的使用者空間,用於代為guestos發出io請求;
來賓模式:guestos的使用者模式;所有的非io類請求;
qemu:
處理器模擬器
**各種io裝置
將**裝置連線至主機的物理裝置
提供使用者介面
qemu-kvm 可以完成虛擬機器建立,安裝,啟動執行
qemu-img 輔助對磁碟映象的管理
qemu-io 對io使用情況管理
執行中的乙個kvm虛擬機器就是乙個qemu-kvm程序,執行qemu-kvm程式並傳遞給它合適的選項及引數即能完成虛擬機器啟動,終止此程序即能關閉虛擬機器;
安裝使用kvm:
判斷cpu是否支援硬體虛擬化:
grep -i -e '(vmx|svm|lm)' /proc/cpuinfo
brctl addbr br-and ##建立虛擬網橋modprobe kvm
yum install qemu-kvm
ln -sv /usr/libexec/qemu-kvm /usr/bin
mkdir /vms/c -pv
cp cirros-no_cloud-i386.img /vms/c1/ ## cirros 是乙個微型映象檔案 用來測試
ip link set br-and up ##啟動網橋
編寫啟動虛擬機器時要執行的指令碼,預設為/etc/qemu-ifupvim /etc/qemu-ifup
#!/bin/bash
bridge=br0
if [ -n "$1" ];then
ip link set $1 up
sleep 1
brctl addif $bridge $1
[ $? -eq 0 ] && exit 0 || exit 1
else
echo "error: no inte***ce specified."
exit 2
fi
chmod +x /etc/qemu-ifup
建立虛擬機器並虛擬網絡卡網橋
qemu-kvm -smp 1 -m 32 -name c2 -drive file=/data/img/c1.img,if=virtio,media=disk,format=qcow2 -vnc :1 -net nic,
model=e1000,macaddr=52:54:00:00:00:01 -net tap,script=/etc/qemu-ifup -daemonize
#######
-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]:指明虛擬機器上vcpu的數量及拓撲;
-name name:當前虛擬機器的名稱,要惟一;
-drive [file=file][,if=type][,media=d][,index=i] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]:
file=/path/to/some_image_file:映像檔案路徑;
if=type:塊裝置匯流排型別,ide, scsi, sd, floppy, virtio,
media=type:介質型別,cdrom和disk;
format=f:磁碟映像檔案的格式;
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v] 為虛擬機器建立乙個網路介面,並將其新增至指定的vlan;
-net nic,model=? model=type:指明模擬出的網絡卡的型號,ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio;
macaddr=mac:指明mac位址;52:54:00:
-net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]:
通過物理的tap網路介面連線至vlan n;
script=file:啟動虛擬機器時要執行的指令碼,預設為/etc/qemu-ifup
#########
-vnc :1 通過vncserver終端1 鏈結可以在圖形化介面登入
yum install tigervnc-server
圖形化介面執行vncviewer
在出現的登入介面輸入提示的登入
user:cirros
password:cubswin:)
讓虛擬機器通訊
為建立的虛擬主機新增ip位址 內網位址 可隨意建立
ifconfig add eth0 10.1.0.1/16
讓虛擬主機可以和網橋通訊,在宿主機上執行
ip addr add 10.1.0.222/16 br-and ##給虛擬網橋新增位址
echo 1 > /proc/sys/net/ipv4/ip_forward ## 開啟路由**
讓虛擬主機可以和宿主機僅主機通訊
iptables -t nat -a postrouting -s 10.1.0.0/16 -j snat --to-source 172.16.250.200
讓虛擬主機可以被訪問到
iptables -t nat -a prerouting -d 172.16.250.200 -p tcp --dport 22022 -j dnat --to-destination 10.1.0.1:22
建立並安裝KVM虛擬機器
沿用練習 一 二 三,在kvm伺服器上新建一台虛擬機器,並且以pxe方式裝好rhel6作業系統。使用的工具為virt manager 圖形化的 虛擬系統管理器 新建虛擬機器的配置要求如下 名稱 rh6 n1 記憶體 1024m 網絡卡連線 virbr1 磁碟 data images node1.im...
建立虛擬機器
建立虛擬機器時難點在於安裝作業系統上,其他地方沒難度我就不一步一步說了。要點 1 硬體相容性一般情況下選最高的那個,但有時候,最高的那個會存在不穩定的現象。儘管我是道聽途說,但保險起見,我選擇workstation 12.x。這個相容性可在後面隨時調整,不影響虛擬機器內的資料。2 主要難點在於安裝作...
建立虛擬機器
第一步點選新建虛擬機器,選擇自定義 高階 第二步預設選項,進入下一步。第三步,選擇稍後安裝作業系統。進入下一步。第四步,選擇安裝linux系統,下面版本選項選擇oracle liunx 7 64位。第五步,虛擬機器名稱自己命名。檔案位置,建議建立在自己能找到的磁碟裡。第六步,處理器數量推薦選擇2個,...