詳解CentOS7.2部署KVM虛擬機(圖文)
前段時間學(xué)習(xí)了關(guān)于PostGis、OSM數(shù)據(jù)以及Mapnik相關(guān)內(nèi)容,接下來將利用假期重點學(xué)習(xí)PostgreSQL-XL和瓦片服務(wù)器集群技術(shù),因此先把環(huán)境搭好。計劃采用KVM來充分利用家里不太寬裕的“服務(wù)器”資源,以便實現(xiàn)彈性計算:)
CentOS版本:64位 7.2 1511
一、安裝KVM
1. 驗證CPU是否支持KVM;如果結(jié)果中有vmx(Intel)或svm(AMD)字樣,就說明CPU的支持的。
egrep '(vmx|svm)' /proc/cpuinfo
2. 關(guān)閉SELinux,將 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改為 SELinux=disabled
3. 最小安裝的CentOS安裝一些最基本的包(可選項,因為我是剛安裝好的CentOS,所以為了下面方便點,先把一些必要的工具安裝下)
yum install epel-release net-tools vim unzip zip wget ftp -y
4. 安裝KVM及其依賴項
yum install qemu-kvm libvirt virt-install bridge-utils -y
5. 驗證安裝結(jié)果,下圖說明已經(jīng)成功安裝了
lsmod | grep kvm
6. 開啟kvm服務(wù),并且設(shè)置其開機自動啟動
systemctl start libvirtd systemctl enable libvirtd
7. 查看狀態(tài)操作結(jié)果,如下圖所示,說明運行情況良好
systemctl status libvirtd systemctl is-enabled libvirtd
8. 配置網(wǎng)橋模式,先將 /etc/sysconfig/network-scripts/ 目錄下的網(wǎng)卡配置文件備份一份(不要備在當(dāng)前目錄以及子目錄下,其他目錄隨意)
a. 創(chuàng)建 ifcfg-br0 文件,內(nèi)容如下:
BOOTPROTO=static DEVICE=br0 TYPE=Bridge NM_CONTROLLED=no IPADDR=192.168.1.95 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=61.177.7.1 DNS2=8.8.8.8
b. 移除掉原來的 ifcfg-enp0s25 ,重新創(chuàng)建該文件,內(nèi)容如下:
BOOTPROTO=none DEVICE=enp0s25 NM_CONTROLLED=no ONBOOT=yes BRIDGE=br0
c. 重啟網(wǎng)絡(luò)服務(wù)
systemctl restart network
使用 ifconfig 驗證操作結(jié)果,多了一塊網(wǎng)卡br0,現(xiàn)在訪問 think8848-srv02 使用 192.168.1.95 就可以了。
二、安裝虛擬機
1. 準(zhǔn)備操作系統(tǒng)安裝鏡像文件,在本文中將使用和宿主環(huán)境一樣的CentOS7.2,把該文件放到 /home/iso 目錄下
2. 創(chuàng)建虛擬機文件存放的目錄
mkdir -p /home/kvm-bak
3. 使用 virt-install 創(chuàng)建虛擬機
virt-install -n think8848-kvmbase -r 2048 --disk /home/kvm-bak/think8848-kvmbase.img,format=qcow2,size=20 --network bridge=br0 --os-type=linux --os-variant=rhel7.2 --cdrom /home/iso/CentOS-7-x86_64-DVD-1511.iso --vnc --vncport=5910 --vnclisten=0.0.0.0
操作結(jié)果顯示:
不要理會里面提示的錯誤,接著往下走
4. 打開防火墻上的5910端口
firewall-cmd --zone=public --add-port=5910/tcp --permanent firewall-cmd --reload
5. 使用VNC連接該虛擬機,進(jìn)行虛擬機操作系統(tǒng)的安裝,直接到VNC官網(wǎng)上下載最新版的VNC Viewer即可
a. VNC Viewer
b. 新建連接,提供宿主IP、端口號(在virt-install創(chuàng)建過程中指定的),以及名稱
c. 在Expert頁簽中,將ColorLevel的值由原來的 pal8 修改為 rgb222 ,點擊OK按鈕保存
d. 如果你像我一樣,邊操作邊還在做筆記,等你雙擊連接的名稱后,安裝界面都準(zhǔn)備好了
接下來就安裝CentOS吧,過程略。
6. 安裝完CentOS,系統(tǒng)要求重啟,這時候虛擬機沒有重啟(也不知是因為什么問題),VNC也連不上,先在宿主機上查看虛擬機狀態(tài),顯示think8848-kvmbase為關(guān)閉狀態(tài)
virsh list --all
7. 手動啟動虛擬機
virsh start think8848-kvmbase
再次使用VNC連接,發(fā)現(xiàn)已經(jīng)可以連進(jìn)去了
三、簡單配置KVM虛擬機
1. 網(wǎng)橋配置,這里值得一提的是,如果你在虛擬機中安裝CentOS過程中,配置了合適的網(wǎng)格參數(shù),那么這時虛擬機里應(yīng)該就可以使用網(wǎng)絡(luò)了。如果當(dāng)時就采用系統(tǒng)安裝包的默認(rèn)參數(shù),未啟用網(wǎng)卡,那么此時你需要啟動虛擬機的網(wǎng)卡,先看下虛擬機網(wǎng)卡的配置文件列表,貌似和普通電腦安裝沒啥區(qū)別,網(wǎng)卡的配置文件是 ifcfg-eth0
再查看 ifcfg-eth0配置文件,和普通電腦安裝的也沒啥區(qū)別,按照要求呢,貌似在一些文章中介紹,說需要添加一行配置 NM_CONTROLLED=no ,我沒添加也沒發(fā)現(xiàn)有什么問題。
2. 配置在宿主端登錄虛擬機shell。當(dāng)然在宿主端也是可以通過SSH登錄,但是直接登錄貌似也是一個不錯的方式。這個配置主要有兩個步驟:
a. 編輯 /etc/default/grub 文件,對照如下:
編輯前:
編輯后:
文本內(nèi)容:
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb" GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200" GRUB_DISABLE_RECOVERY="true"
b. 運行下面一行的代碼
grub2-mkconfig -o /boot/grub2/grub.cfg
c. 重啟虛擬機 reboot
d. 在宿主機上進(jìn)入虛擬機控制臺,想退出時使用 Ctrl 鍵+ ] (左方括號)鍵退出。
virsh console think8848-kvmbase
四、遷移虛擬機
虛擬機建好后,最大的好處就是任由我們折騰,而不用擔(dān)心重裝系統(tǒng)的麻煩。所以一定要知道虛擬機怎么復(fù)制遷移,這里有兩種情況,一種是本機上鏡像復(fù)制,另一種是將本機鏡像遷移到其他服務(wù)器上。
1. 本機復(fù)制
a. 先關(guān)閉虛擬機
virsh shutdown think8848-kvmbase
b. 在 /home 下新建文件夾 /home/kvm-img
mkdir -p /home/kvm-img
c. 使用 virt-clone 克隆think8848-kvmbase為新的虛擬機
virt-clone -o think8848-kvmbase -n think8848-kvm01 -f /home/kvm-img/think8848-kvm01.img
克隆完成
使用 virsh list --all 查看
d. 開啟think8848-kvm01,然后修改IP地址、主機名
virsh start think8848-kvm01 virsh console think8848-kvm01 #等虛擬機啟動好后,用root登錄 hostname think8848-kvm01 #編輯/etc/hostname文件,修改主機名為think8848-kvm01 vi /etc/hostname #編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改IPADDR
e. reboot 重啟虛擬機,重啟后剛才修改的內(nèi)容已經(jīng)生效了。
2. 將虛擬機鏡像遷移到其他服務(wù)器上
a. 先將虛擬機的配置文件和鏡像文件放到合適的位置(我搭了一臺FTP服務(wù)器,方便測試時所有的文件傳輸,如下圖所示)
b. 現(xiàn)在到服務(wù)器轉(zhuǎn)戰(zhàn)到think8848-srv01(IP:192.168.1.96),剛才虛擬機是在think8848-srv02(IP:192.168.1.95)上創(chuàng)建的。以下所有操作均是在think8848-srv01上進(jìn)行的
c. 將ftp上的think8848-kvm01.img放到/home/kvm-img目錄,將think8848-kvm01.xml放到/etc/libvirt/qemu目錄中
d. 編輯think8848-kvm02.xml,將里面所有think8848-kvm01替換為think8848-kvm02,然后把UUID換為新的(直接使用這個在線工具生成吧)
e. 定義新虛擬機
virsh define /etc/libvirt/qemu/think8848-kvm02.xml
圖中think8848-kvm01是我之前在宿主機中配置的虛擬機,恰好名稱與之前的重復(fù)了。我在think8848-kvm01上沒有安裝ftp客戶端,在新遷移的虛擬機里面安裝了ftp,可以利用這個包驗證虛擬機是否正確
OK,說明沒有問題
f. 現(xiàn)在是時候再給新的虛擬機指定新主機名和IP了。剛才是我們重啟生效的,這次我們不要重啟了,先使用 systemctl restart network 使新IP生效,然后再 exit 注銷用戶使主機名生效,就可以了。
最后一個問題,如果在克隆或遷移后想使用VNC連接,那就需要重新指定VNC的端口號,將 /etc/libvirt/qemu/think8848-kvm02.xml 中的VNC端口號修改你需要的值即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
kvm虛擬化學(xué)習(xí)筆記(一)之kvm虛擬化環(huán)境安裝的步驟
這篇文章主要介紹了kvm虛擬化學(xué)習(xí)筆記(一)之kvm虛擬化環(huán)境安裝的步驟,非常具有實用價值,需要的朋友可以參考下。2016-12-12kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的實現(xiàn)方法
為了避免虛擬機的IP地址和內(nèi)網(wǎng)網(wǎng)段沖突,kvm采用的是NAT模式,而非橋接模式,而kvm的轉(zhuǎn)發(fā),需要使用Linux的iptables工具來實現(xiàn),下面通過本文給大家介紹kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的實現(xiàn)方法,感興趣的朋友一起看看吧2022-06-06