以下使用都基於Centos7.2進行的操作
流程:
1、開啟虛擬化技術
2、下載KVM相關組件
3、建立(系統安裝)磁盤
4、安裝系統
5、安裝完畢后,查看配置
6、進入管理台,查看虛擬機狀態及網絡狀態。
7、進入虛機,並查看網絡,及配置網絡
8、復制虛擬機
重要提示:
1、Centos7以上環境需要關閉NetworkManager服務,不讓將會出現不明錯誤
#systemctl stop NetworkManager
#systemctl disable NetworkManager
2、啟動起來的虛擬機是否可正常上網需觀察route表。
一、宿主機開啟虛擬技術
使用kvm前提:CPU支持虛擬技術,且在BIOS上開啟該項功能。
#grep -E '(vmx|svm)' /proc/cpuinfo
使用以上命令,如果其中輸出有VMX或SVM,既表明支持虛擬化技術。
備注:進入BIOS中選擇Intel VirtualTechnology這一項,默認disabled(關閉),選擇enabled(開啟)就可以了
驗證方法:在完成第2、3的基礎上,第4步安裝系統時不出現異常提示
二、下載KVM相關組件
yum安裝KVM及所需組件
#yum -y install libvir kvm virt-manager virt-install bridge-utils libvirt qemu-kvm virt-viewer
#systemctl start libvirtd
驗證方式:#virsh 可以進入虛機控制台
三、建立(系統安裝)磁盤
#qemu-img create /opt/kvm/centos7.img 50G
#qemu-img create -f qcow2 -o preallocation=metadata /opt/kvm/centos7.qcow2 50G (支持快照)
以上兩條命令都表示在/opt/kvm下創建50G系統盤。
第一是以默認格式img創建一個50G系統盤,測試使用時推薦使用。
第二條以qcow2格式創建一個50G系統盤,推薦在正式環境中使用,支持快照等高級功能,該功能將在拓展篇中記錄。
驗證方法:#ls -lh /opt/kvm/centos7.img 看是否顯示占用空間與輸入的一致
四、安裝操作系統
#virt-install -n Centos --ram=1024 --disk centos7.img --location CentOS-6.7-x86_64-bin-DVD1.iso --graphics none --check all=off --network network=default --vcpus=1 --extra-args='console=tty0 console=ttyS0'
注:
以上命令在當前/opt/kvm目錄下操作,所有文件都為使用絕對路徑-n --指定系統名稱
--ram --指定內存大小
--disk --指定系統盤
--location --指定安裝的鏡像盤路徑、名稱
--network network=default --指定使用的網卡
--vcpus=1 --指定CPU核實
--check all=off --可刪除
--check path_in_use=off 或 --check all=off 選項覆蓋
--extra-args='console=tty0 console=ttyS0' 這串表示可以通過console的方式連接已經創建的虛擬機。
--graphics none這一串是表示在把圖形化輸出到命令行終端上。
另外一種把圖形化輸出到命令行操作終端的方法是修改系統上的/boot/grub/grub.conf文件,在kernel后面加上console ttyS0,vim /etc/securetty,添加ttyS0,然后重啟系統。
驗證方法:
1)安裝過程無報錯、輸入#virsh list --all可以查看到已安裝的系統信息。
2)virsh start Centos
3)virsh console Centos
4)成功進入虛擬系統
五、查看配置
/etc/libvirt/qemu下的Centos.xml為虛機配置。(1個虛機對應1個該配置文件)
主要:第9、10、41、74、75、76行信息
/etc/libvirt/qemu/networks/default.xml為默認網絡配置文件。(1張虛擬網卡對應一個該配置文件)
主要:第9、10、13、14、16行信息
六、進入管理台,查看虛擬機狀態及網絡狀態
#virsh 進入KVM虛機管理台 quit/exit則退出
#list --all 查看所有虛擬及狀態
#net-list --all 查看所有虛擬網卡及狀態
#start centos7.0 開啟虛機
#virsh net-start default 啟動默認虛擬網卡
#console centos7.0 進入虛機
七、進入虛機,並查看網絡,及配置網絡
詳情請查看網絡章
八、復制虛擬機
1、拷貝系統文件(硬盤)並更改名稱,如 #cp 1.img 2.img
2、拷貝系統配合文件並更改名稱,及修改重要變量。
#cp /etc/libvirt/qemu/holle1.xml /etc/libvirt/qemu/holle2.xml
#vi /etc/libvirt/qemu/holle2.xml
刪除第10、71行。 修改9、41行對應信息。
備注:重點為更改名稱、刪除UUID這一類唯一標識信息。UUID刪除后將自動生產一個新的,也可以使用腳本生產並替換。
3、進入virsh
#define /etc/libvirt/qemu/holle2.xml #添加虛擬機
#list --all #查看是否添加成功
#start holle2 #啟動虛擬機
#console holle2 #進入虛擬機
4、修改網絡
ifconfig -a 看獲取到的網卡名
#cd /etc/sysconfig/network-scripts/
#mv ifcfg-eth2 ifcfg-eth3 #網卡名更改為對應名稱
#vi ifcfg-eth3 #修改對應名稱,清楚UUID等唯一標識
#ifup ifcfg-eth3 #重啟單個網卡
常用命令:
vm表示虛擬機名,進入虛擬控制台可以使用Tab補全命令,在bash中不支持。
查看所有已定義虛機:list --all
查看所有已定義網卡:net-list --all
進入已開啟的虛機:console vm
開機:virsh start vm
關機:virsh shutdown vm 如果不生效,需要在 vm 中執行:yum install -y acpid
強關:virsh destroy vm
刪除:virsh undefine vm
定義:virsh define vm
掛起:virsh suspend vm
恢復:virsh resume vm
參考資料:
1、kvm使用入門詳解
http://www.cnblogs.com/liwei0526vip/archive/2016/12/20/6201582.html
2、使用KVM虛擬win系統
http://www.cnblogs.com/nulige/articles/6602963.html
3、Linux中使用KVM
http://lvmy.iteye.com/blog/1297409
4、KVM虛擬機網絡配置
ubuntu裝kvm
sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin bridge-utils virtinst acpi lsb lrzsz unzip
auto 網卡名字
iface 網卡名字inet manual
auto br0
iface br0 inet static
bridge_ports 網卡名字
bridge_stp off
bridge_fd 0
bridge_maxwait 0
address 10.255.1.2
netmask 255.0.0.0
gateway 10.255.0.1
dns-nameservers 114.114.114.114
virsh pool-build vps_pool
virsh pool-autostart vps_pool
virsh pool-start vps_pool
virsh pool-list
virsh pool-build iso
virsh pool-autostart iso
virsh pool-start iso
virsh pool-list
vim /etc/libvirt/libvirtd.conf
listen_tls = 0 #禁用tls登錄
listen_tcp = 1 #啟用tcp方式登錄
tcp_port = "16509" #tcp端口16509
listen_addr = "0.0.0.0"
unix_sock_group = "libvirtd"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none" #TCP不使用認證
max_clients = 1024 #最大總的連接客戶數1024
min_workers = 50 #libvirtd啟動時,初始的工作線程數目
max_workers = 200 #同上,最大數目
max_requests = 1000 #最大同時支持的RPC調用,必須大於等於max_workers
max_client_requests = 200 #每個客戶端支持的最大連接數
同時修改libvirt-bin的配置文件:
vim /etc/default/libvirt-bin:
# Start libvirtd to handle qemu/kvm:
start_libvirtd="yes"
# options passed to libvirtd, add "-l" to listen on tcp
libvirtd_opts="-d -l --config /etc/libvirt/libvirtd.conf"
以上修改后,執行
service libvirt-bin restart && netstat -anpt | grep 16509
就能看到libvirtd監聽在TCP 16509端口。
當然,你也可以直接替換文件:
/etc/default/libvirt-bin