這幾天玩了一下kvm虛擬化,真的很有意思,我把這幾天踩的坑,還有收獲,都記錄下來,作為以后的復習和檢查。
首先說一下我的基本邏輯,我有一台win7的筆記本,我的底層虛擬化是使用VMWare構建的Centos7虛擬機,我現在需要在Centos7虛擬機中搭建kvm虛擬機,並且在里面安裝win2012server系統。
物理機:win7筆記本
底層虛擬化:VMWare 虛擬化 Centos7 x64
上層虛擬化:kvm 虛擬化 win2012
首先我們需要查看自己的物理機和VM機器是否支持虛擬化,這點很重要,因為Kvm需要虛擬化vmx支持。
執行
egrep '(vmx|svm)' --color=always /proc/cpuinfo
可以看見帶有vmx,說明支持vmx虛擬化
如果沒有這個輸出,說明你沒有開啟vmx虛擬化支持,所以,你需要在VMware虛擬機設置里,找到虛擬化引擎,勾選虛擬化Intel,就可以了。
接下來你需要安一大堆東西,這些東西都是支持kvm運行的,直接復制粘貼然后運行吧。
yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools
安裝VNC,這玩意非常重要,是后面連接安裝必須要的玩意兒。
yum -y install vnc-server yum -y install tigervnc-server
啟動libvirtd服務
/sbin/service libvirtd restart ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
接下來是重頭戲,搭配網卡,否則到時候安好了上不去網就抓瞎了
首先,我們的網卡確認是橋接模式,新建一張網卡br0:
創建網橋: touch /etc/sysconfig/network-scripts/ifcfg-br0 vi /etc/sysconfig/network-scripts/ifcfg-br0 在ifcfg-br0添加: DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=公網IP NETMASK=公網IP掩碼 GATEWAY=公網IP網關
接下來修改一下你自己的網卡配置,我的網卡是en33
vi /etc/sysconfig/network-scripts/ifcfg-en33
修改幾個地方:
BRIDGE="br0"
ONBOOT="yes"
BOOTPROTO="none"
其他不變
保存之后重啟network服務
service network restart
如果沒有問題的話,你這里會顯示
查看一下網橋:brctl show
可以看見如下,這樣就沒錯了。
好了,重頭戲結束了,剩下的難點不多,繼續吧。
在kvm中,安裝windows需要使用virtio驅動,這個驅動是安裝windows中必須要的,否則就會找不到硬盤,我們先下載驅動。
注意:在配置完網卡以后,你可能會遇見yum install error 的問題,不用擔心,請執行 vi /etc/resolv.conf,添加 nameserver :8.8.8.8
安裝virtio驅動:
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win -y
最后就是搭建一個虛擬機:
創建一個虛擬機磁盤:
qemu-img create -f qcow2 win2012.img 40G
創建虛擬機,這是我自己的配置,你們可能要自己修改一下
virt-install -n win2012 --vcpus=2 --ram=1024 --os-type=windows --os-variant=win2k12 \
-c /vm/iso/cn_windows_server_2012_r2_sp1_x64.iso \
--disk path=/usr/share/virtio-win/virtio-win-0.1.126_amd64.vfd,device=floppy \
--disk path=/vm/win2012.img,format=qcow2,bus=virtio --graphics vnc,listen=0.0.0.0 \
--noautoconsole
命令解釋:
1 virt-install
2 -n win2012 3 --vcpus=2 #分配兩個CPU給這台機器
4 --ram=1024 #分配1024內存
5 --os-type=windows #類型是windows 6 --os-variant=win2k12 -c /vm/iso/cn_windows_server_2012_r2_sp1_x64.iso #指向鏡像 7 --disk path=/usr/share/virtio-win/virtio-win-0.1.126_amd64.vfd,device=floppy #指向驅動virtio-win-0.1.126_amd64 8 --disk path=/vm/win2012.img,format=qcow2,bus=virtio --graphics vnc,listen=0.0.0.0 #指向虛擬磁盤wind012.img,默認端口5900
9 --noautoconsole
查看虛擬機:
執行完上面哪些命令以后,你會看見
執行查看虛擬機的命令:virsh list --all
你已經有了一個虛擬機了,現在你只需要安裝系統。
然后鏈接機器 :
接下來就是安裝windows那一套,老樣子,我已經安過,就不展示。
這樣一個kvm虛擬機就搭建好了。
還有別的玩法,后面我再寫。