平時我們開虛擬機(jī)用得比較多得是使用VMWare侮穿,簡單無腦,只需在圖形界面上點點點就可以完成虛擬機(jī)管理,可惜VMWare并不是免費,因此這里介紹另一種虛擬機(jī)的搭建方式——KVM,KVM是Kernel-based Virtual Machine的簡稱艰猬,是一個開源的系統(tǒng)虛擬化模塊,自Linux 2.6.20之后集成在Linux的各個主要發(fā)行版本中埋市。它使用Linux自身的調(diào)度器進(jìn)行管理冠桃,所以相對于Xen,其核心源碼很少道宅,相對VMWare的管理方式來說是比較麻煩食听,但從性能上并不比VMWare差。
目錄
- 一培己、安裝環(huán)境
- 二碳蛋、KVM安裝
- 三、創(chuàng)建虛擬機(jī)并安裝CentOS 7
- 四省咨、克隆虛擬機(jī)
- 五肃弟、參考并致謝
一、安裝環(huán)境
操作系統(tǒng)(在哪個操作系統(tǒng)上操作):CentOS 7
虛擬化軟件:VMWare 14零蓉、KVM
操作系統(tǒng)(等下虛擬機(jī)建好后需要安裝的操作系統(tǒng)):CentOS 7
說明: 由于我使用的是在本機(jī)的VMware上搭建的Linux作為搭建KVM的演示笤受,所以這里使用了VMWare,如果是在操作系統(tǒng)上直接搭建KVM敌蜂,則不需要VMWare
二箩兽、KVM安裝
1、VMWare虛擬機(jī)配置
這是我用來演示的虛擬機(jī)配置章喉,如果讀者是直接使用物理機(jī)的話可以省略這一步
硬盤需要新增一個(如果磁盤空間足夠也可以忽略)汗贫,用于在KVM里安裝操作系統(tǒng)時用到,內(nèi)存最好有4G秸脱,最低也不要少于2G落包,具體根據(jù)你所需來配置,CPU的核心最少2個
2摊唇、安裝KVM
1)啟動剛剛創(chuàng)建的VM虛擬機(jī)或物理機(jī)
2)進(jìn)入系統(tǒng)后關(guān)閉防火墻和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
3)檢查CPU參數(shù)是否支持虛擬化
[root@localhost ~]# grep -Ei 'vmx|svm' /proc/cpuinfo
如果結(jié)果有過濾出vmx或者svm的關(guān)鍵字代表支持虛擬化咐蝇,vmx是Intel的CPU,svm是AMD的CPU巷查,如圖所示
4)格式化新磁盤或者擴(kuò)展磁盤
如果磁盤空間足夠或者已經(jīng)準(zhǔn)備好需要擴(kuò)展的磁盤的話可以跳過此步有序,這里選擇擴(kuò)展磁盤
# 格式化磁盤
[root@localhost ~]# fdisk /dev/sda
[root@localhost ~]# fdisk -l
# 重啟系統(tǒng)
[root@localhost ~]# reboot
[root@localhost ~]# vgdisplay
[root@localhost ~]# pvcreate /dev/sda4
[root@localhost ~]# vgextend centos /dev/sda4
[root@localhost ~]# vgdisplay
# 查看磁盤目前的大小,并記住
[root@localhost ~]# df -h
# 擴(kuò)展磁盤
[root@localhost ~]# lvextend -L +49G /dev/mapper/centos-root
[root@localhost ~]# resize2fs /dev/mapper/centos-root
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
# 檢查磁盤是否已經(jīng)成功擴(kuò)展
[root@localhost ~]# df -h
我習(xí)慣使用目錄的方式來區(qū)分各不同的應(yīng)用岛请,如我這里直接在磁盤中創(chuàng)建了存放KVM虛擬機(jī)的目錄
[root@localhost ~]# mkdir /kvm
5)下載安裝KVM軟件
[root@localhost ~]# yum -y install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
6)配置虛擬網(wǎng)卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
# 拷貝當(dāng)前的網(wǎng)卡文件旭寿,作為一個橋接網(wǎng)卡
[root@localhost /etc/sysconfig/network-scripts]# cp ifcfg-ens33 ifcfg-br0
# 修改原來的網(wǎng)卡內(nèi)容
[root@localhost /etc/sysconfig/network-scripts]# vim ifcfg-ens33
原來的網(wǎng)卡配置文件內(nèi)容修改如下:
然后修改br0網(wǎng)卡的配置文件:
重啟網(wǎng)絡(luò)服務(wù)
[root@localhost ~]# systemctl restart network
網(wǎng)絡(luò)服務(wù)重啟之后使用ifconfig命令可以看到此時ens33網(wǎng)卡的IP到br0網(wǎng)卡上了
7)啟動KVM服務(wù)
# 檢查KVM模塊是否加載
[root@localhost ~]# lsmod |grep kvm
# 啟動libvritd服務(wù)
[root@localhost ~]# systemctl start libvirtd
# 此時可以看到兩個網(wǎng)卡
[root@localhost ~]# brctl show
三、創(chuàng)建虛擬機(jī)并安裝CentOS 7
1髓需、首先要準(zhǔn)備鏡像文件许师,鏡像文件可以從官網(wǎng)下載,這里我已經(jīng)下載好了
2、使用命令安裝
[root@localhost ~]# virt-install --name=study01 --memory=1024,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/home/CentOS-7-x86_64-DVD-1810.iso --disk path=/kvm/study01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
命令說明:
--name 指定虛擬機(jī)的名稱
--memory 指定分配給虛擬機(jī)的內(nèi)存資源大小
maxmemory 指定可調(diào)節(jié)的最大內(nèi)存資源大小微渠,因為KVM支持熱調(diào)整虛擬機(jī)的資源
--vcpus 指定分配給虛擬機(jī)的CPU核心數(shù)量
maxvcpus 指定可調(diào)節(jié)的最大CPU核心數(shù)量
--os-type 指定虛擬機(jī)安裝的操作系統(tǒng)類型
--os-variant 指定系統(tǒng)的發(fā)行版本
--location 指定ISO鏡像文件所在的路徑搭幻,支持使用網(wǎng)絡(luò)資源路徑,也就是說可以使用URL
--disk path 指定虛擬硬盤所存放的路徑及名稱逞盆,size 則是指定該硬盤的可用大小檀蹋,單位是G
--bridge 指定使用哪一個橋接網(wǎng)卡,也就是說使用橋接的網(wǎng)絡(luò)模式
--graphics 指定是否開啟圖形
--console 定義終端的屬性云芦,target_type 則是定義終端的類型
--extra-args 定義終端額外的參數(shù)
開始安裝后會顯示安裝引導(dǎo)界面(其實跟普通安裝CentOS一樣俯逾,只不過平時是用圖形界面安裝,這里是用命令行來展現(xiàn))舅逸,[!]代表你需要配置的桌肴,[x]代表你已經(jīng)設(shè)置了
這里我們按1進(jìn)入語言選擇界面:
這里選擇了中文,輸入68并回車琉历,然后會讓你選擇是簡體還是繁體坠七,這里也按下相應(yīng)的數(shù)字然后回車:
接下來選擇時區(qū):
選擇亞洲
設(shè)置系統(tǒng)安裝盤
設(shè)置root密碼
最后開始安裝系統(tǒng)
安裝完成后會停止在以下這個界面,按一下回車就會自動重啟完成安裝系統(tǒng)
重啟完成后就會進(jìn)入到登錄界面
此時我們所在的是一個KVM虛擬機(jī)的終端旗笔,如果想要切換回原本那個系統(tǒng)終端的話可以使用Ctrl+]命令
然后登錄到虛擬機(jī)彪置,修改虛擬機(jī)的網(wǎng)絡(luò)配置文件去配置IP,讓其能聯(lián)網(wǎng)
退出虛擬機(jī)后蝇恶,我們進(jìn)入到KVM虛擬機(jī)安裝的目錄或磁盤拳魁,會發(fā)現(xiàn)下面多出了個文件
查看KVM進(jìn)程命令:
[root@localhost ~]# ps axu |grep kvm
列出當(dāng)前有多少個虛擬機(jī)(該命令不能查看已經(jīng)關(guān)機(jī)的虛擬機(jī),可以加上--all參數(shù)查看全部虛擬機(jī)):
[root@localhost ~]# virsh list
# 查看全部虛擬機(jī)
[root@localhost ~]# virsh list --all
查看虛擬機(jī)配置文件:
[root@localhost ~]# ls /etc/libvirt/qemu/
[root@localhost ~]# ls /etc/libvirt/qemu/networks/
[root@localhost ~]# ls /etc/libvirt/qemu/networks/autostart/
一些常用命令總結(jié):
# 進(jìn)入指定的虛擬機(jī)撮弧,進(jìn)入的時候還需要按一下回車
[root@localhost ~]# virsh console study01
# 啟動虛擬機(jī)
[root@localhost ~]# virsh start study01
# 關(guān)閉虛擬機(jī)
[root@localhost ~]# virsh shutdown study01
# 強(qiáng)制停止虛擬機(jī)
[root@localhost ~]# virsh destroy study01
# 徹底銷毀虛擬機(jī)潘懊,會刪除虛擬機(jī)配置文件,但不會刪除虛擬磁盤
[root@localhost ~]# virsh undefine study01
# 設(shè)置宿主機(jī)開機(jī)時該虛擬機(jī)也開機(jī)
[root@localhost ~]# virsh autostart study01
# 解除開機(jī)啟動
[root@localhost ~]# virsh autostart --disable study01
# 掛起虛擬機(jī)
[root@localhost ~]# virsh suspend study01
# 恢復(fù)掛起的虛擬機(jī)
[root@localhost ~]# virsh resume study01
此時虛擬機(jī)安裝完成
注意啦;哐堋X宰稹!由于我的宿主機(jī)是centos7系統(tǒng)舌厨,所以創(chuàng)建出來的磁盤默認(rèn)就是qcow2 格式的,如果是centos6 的宿主系統(tǒng)那么創(chuàng)建出來的磁盤是raw格式(這個系統(tǒng)遷移和派生的時候要一定要小心7揶薄)裙椭。
附上鏡像格式轉(zhuǎn)換命令:
# qemu-img convert -f raw -O qcow2 study01.img study01.qcow2
四、克隆虛擬機(jī)
1署浩、停止或掛起需要克隆的虛擬機(jī)
[root@localhost ~]# virsh suspend study01
2揉燃、使用命令的方式來克隆
[root@localhost ~]# virt-clone -o study01 -n study01_clone -f /kvm/study01_clone.img
參數(shù)說明:
-o :指定源虛擬機(jī)
-n :命名新克隆的虛擬機(jī)
-f :指定新克隆虛擬機(jī)的位置
克隆完成后查看存放虛擬機(jī)的目錄
[root@localhost ~]# ls /kvm
查看配置文件目錄
[root@localhost ~]# ls /etc/libvirt/qemu
查看虛擬機(jī)狀態(tài):
[root@localhost ~]# virsh list --all
啟動克隆出來的虛擬機(jī)并配置網(wǎng)絡(luò)IP
[root@localhost ~]# virsh start snale_clone
3、使用復(fù)制文件的方式克隆虛擬機(jī)
導(dǎo)出配置文件到/etc/libvirt/qemu目錄下筋栋,并重命名
[root@localhost ~]# virsh dumpxml study01 >/etc/libvirt/qemu/study03.xml
當(dāng)然也可以復(fù)制
[root@localhost ~]# cp study01.xml study03.xml
復(fù)制KVM虛擬磁盤文件
[root@localhost ~]# cp /kvm/study01.img /kvm/study03.img
編輯新的虛擬機(jī)配置文件study03.xml
[root@localhost ~]# vim /etc/libvirt/qemu/study03.xml
主要修改以下內(nèi)容:
<name>study03</name>
# UUID隨意修改數(shù)值炊汤,不過格式要一致
<uuid>192fdc94-c81b-fa35-9100-0c073eee2c27</uuid>
文件目錄
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/kvm/study03.img'/>
注冊新的虛擬機(jī):
[root@localhost ~]# virsh define /etc/libvirt/qemu/study03.xml
啟動新的虛擬機(jī)
[root@localhost ~]# virsh start study03