經過博文部署及圖形化管理KVM已經能夠經過圖形化的方式來管理KVM平臺的虛擬機。本篇博文主要介紹如何經過命令行的方式來管理KVM平臺的虛擬機。web
博文大綱:
1、環境要求
2、安裝方式
3、遠程鏈接KVM虛擬機的方法
4、使用默認的方式使KVM虛擬機能夠訪問互聯網
5、KVM經常使用命令vim
若是是真實服務器,那麼就須要在BIOS中開啓虛擬化功能(Virtualization Technology),通常物理服務器,此項功能默認都是打開的。如圖:centos
若是實驗環境使用VMware Workstation的狀況下,就須要在開機以前開啓此項功能。如圖:服務器
最簡單的安裝方式:在安裝系統時,安裝虛擬化功能。如圖:網絡
若是系統已經安裝完成,並且是最小化進行安裝的,則須要進行如下操做:dom
[root@localhost ~]# yum groupinstall -y "GNOME Desktop" //安裝GNOME桌面環境 [root@localhost ~]# yum -y install qemu-kvm //安裝KVM模塊 [root@localhost ~]# yum -y install qemu-kvm-tools //安裝KVM調試工具(能夠不安裝) [root@localhost ~]# yum -y install virt-install //安裝構建虛擬機的命令行工具 [root@localhost ~]# yum -y install qemu-img //安裝qemu組件,建立磁盤、啓動虛擬機等 [root@localhost ~]# yum -y install bridge-utils //安裝網絡支持工具 [root@localhost ~]# yum -y install libvirt //安裝虛擬機管理工具 [root@localhost ~]# yum -y install virt-manager //安裝圖形界面管理虛擬機 若是系統時最小化安裝則需執行這條命令 [root@localhost ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target //將系統默認運行的target更改成graphical.target,若不執行該命令,重啓時可能會報錯。
[root@localhost ~]# cat /proc/cpuinfo | grep vmx //Intel服務器使用這條命令進行驗證(有輸出就表示支持虛擬化) [root@localhost ~]# cat /proc/cpuinfo | grep smv //AMD服務器使用這條命令進行驗證
[root@localhost ~]# lsmod | grep kvm //表示已經安裝 kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm
[root@localhost ~]# systemctl start libvirtd [root@localhost ~]# systemctl enable libvirtd //啓動libvirtd服務,並將其設置爲開機自啓
能夠參考博文圖形化安裝虛擬機進行圖形化安裝虛擬機。tcp
[root@localhost ~]# mkdir -p /kvm/{iso,disk} //建立相應目錄用來存放鏡像和虛擬機磁盤 [root@localhost ~]# cp /mnt/CentOS-7.iso /kvm/iso/ //準備用於安裝虛擬機的鏡像 [root@localhost ~]# qemu-img create -f raw /kvm/disk/web01.raw 10G //建立虛擬磁盤,使用「-f」指定磁盤類型,大小爲10G [root@localhost ~]# virt-install --os-type=linxu --os-variant centos7.0 --name web01 --ram 1024 \ --vcpus 1 --disk /kvm/disk/web01.raw,format=raw,size=10 --location /kvm/iso/CentOS-7.iso \ --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole //建立虛擬機,因爲命令配置項一目瞭然,這裏就很少作介紹了 開始安裝...... 搜索文件 .treeinfo...... | 354 B 00:00:00 搜索文件 vmlinuz...... | 5.9 MB 00:00:00 搜索文件 initrd.img...... | 50 MB 00:00:00 域安裝仍在進行。您能夠從新鏈接 到控制檯以便完成安裝進程。 [root@localhost ~]# virt-manager //打開圖像化管理控制檯
[root@localhost ~]# virsh start web01 //安裝完成以後,啓動web01虛擬機
下載VNC軟件ide
[root@localhost ~]# virsh vncdisplay web01 //查看web01的監聽端口 :0 //0表示監聽的端口是5900端口;1則表示監聽的是5901端口,以此類推!
實驗環境,我就直接關閉防火牆了,不想關閉防火牆的話,執行如下命令便可!工具
[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent [root@localhost ~]# firewall-cmd --reload //開啓5900端口,便於VNC對其進行操做
打開VNC:
若是鏈接時,出現如下情況:
則表示在KVM宿主機中,虛擬機已經打開了一個終端,關閉便可!
VNC鏈接成功後,咱們能夠調整其內核參數,使用console方式能夠鏈接到KVM虛擬機,在KVM虛擬機中執行如下命令:ui
[root@localhost ~]# grubby --update-kernel=ALL --args=」console=ttyS0」 //修改其內核參數,使其向console方式分配一個終端 [root@localhost ~]# reboot //重啓此虛擬機,以便更改生效
[root@localhost ~]# virsh console web01 //使用console方式登陸web01虛擬機
登陸成功!
[root@localhost ~]# ls /usr/share/libvirt/networks/ default.xml [root@localhost ~]# virsh net-define /usr/share/libvirt/networks/default.xml //確認有以上文件,若是沒有能夠用以上命令生成 [root@localhost ~]# virsh net-autostart default //網絡default標記爲自動啓動 [root@localhost ~]# virsh net-start default //啓動網絡,若已啓動,此處會報錯 [root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf [root@localhost ~]# sysctl -p net.ipv4.ip_forward = 1 //開啓路由轉發 [root@localhost ~]# vim /etc/libvirt/qemu/web02.xml ............//省略部份內容 <interface type='network'> <mac address='52:54:00:24:9d:24'/> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> //定位「interface」關鍵字,肯定有上述內容
KVM虛擬機進行驗證:
訪問互聯網成功!
[root@localhost ~]# virsh start 虛擬機名稱 //開啓虛擬機 [root@localhost ~]# virsh list //僅查看運行的虛擬機列表 [root@localhost ~]# virsh list --all //查看全部虛擬機列表 [root@localhost~]# virsh shutdown 虛擬機名稱 //正常的關閉虛擬機 [root@localhost ~]# virsh destroy 虛擬機名稱 //強制關閉虛擬機(相似於拔電源) [root@localhost ~]# virsh dumpxml 虛擬機名稱 > /root/test01-dum.xml //虛擬機備份 [root@localhost ~]# virsh undefine 虛擬機名稱 //刪除虛擬機(注意:取消定義以後,磁盤文件須要手動刪除) [root@localhost ~]# virsh define 備份的.xml虛擬機文件 //經過配置文件生成虛擬機 [root@localhost ~]# virsh edit 虛擬機名稱 //編輯虛擬機的配置文件 [root@localhost ~]# virsh domrename 原名字 要更改的名字 # 好比:([root@localhost~]# virsh domrename test01 test03) 更改虛擬機名稱 [root@localhost qemu]# virsh dominfo test02 //查看虛擬機的詳細信息 [root@localhost ~]# virsh autostart test02 //設置虛擬機爲開機自啓 [root@localhost ~]# virsh autostart --disable test02 //取消開機自啓 [root@localhost~]# virsh vncdisplay test02 //查看對應的VNC鏈接端口號;默認第一個端口號爲:5900(用「:0」表示) [root@localhost ~]# virsh suspend test02 //掛起虛擬機 [root@localhost ~]# virsh resume test02 //取消掛起虛擬機 [root@localhost ~]# virsh console test02 //console方式登錄虛擬機 [root@localhost ~]# qemu-img info /kvm/disk/test01.raw //查看虛擬機的磁盤信息 [root@localhost disk]# qemu-img create test.raw 2G //建立虛擬機使用的磁盤 [root@localhost disk]# qemu-img create -f qcow2 21.qcow2 2G //建立qcow2格式的虛擬機磁盤 [root@localhost disk]# qemu-img convert -f raw -O qcow2 test.raw test.qcow2 //將test.raw磁盤格式raw轉換爲qcow2 [root@localhost qemu]# virsh snapshot-create test02 //建立虛擬機快照 [root@localhost disk]# virsh snapshot-list test02 //查看虛擬機快照 [root@localhost disk]# virsh snapshot-revert test02 1570692304 //恢復快照 [root@localhost disk]# virt-clone --auto-clone -o test01 -n 指定要克隆的名字(可選) //自動克隆虛擬機 [root@localhost disk]# virt-clone -o test01 -n test04 -f /kvm/disk/test04.qcow2 //手動克隆 #上述都是屬於完整克隆。 [root@localhost disk]# qemu-img create -f qcow2 -b test01.qcow2 lktest01.qcow2 // -f:指定要克隆爲的磁盤格式; //-b:指定要轉換的源文件及目標文件 //上述命令是在克隆虛擬機的磁盤文件
———————— 本文至此結束,感謝閱讀 ————————