微吼云上線多路互動直播服務 加速多場景互動直播落地
1000
2025-03-31
安裝
前期準備
安裝虛擬機軟件
配置網絡橋接
使用 virt-install 工具安裝 guest 系統
安裝
前期準備
安裝虛擬機軟件
配置網絡橋接
使用 virt-install 工具安裝 guest 系統
虛擬機配置文件
libvirtd 配置文件
查看 virsh 管理 qemu 虛擬機的信息
使用
查看所有虛擬機狀態
查看指定虛擬機狀態
手動啟動虛擬機
手動關閉虛擬機
直接通過主機配置文檔啟動主機
關機虛擬機
重啟虛擬機
手動掛起/恢復虛擬機
斷電關閉虛擬機
設置隨宿主啟動(開機啟動)
取消開機啟動
刪除虛擬機
導出(備份)虛擬機配置文件
編輯虛擬機配置文件
查看虛擬機磁盤信息
查看指定虛擬機使用磁盤
虛擬機遷移宿主物理服務器
獲取虛機網卡接口
獲取網卡實時信息
顯示虛擬機的信息
獲取虛擬機的UUID
獲取虛擬機的ID
23、顯示虛擬機的運行狀態
編輯虛擬機的配置文件
virsh console連接虛機
為虛擬機添加一塊qcow2磁盤
修改虛擬機內存及CPU大小
快照管理
虛擬機克隆
從本地虛擬機直接克隆
通過復制配置文件和硬盤文件克隆
安裝
前期準備
確定機器有 VT
不知道芯片的生產廠商則輸入:
egrep '(vmx|svm)' /proc/cpuinfo
如果flags: 里有 vmx 或者 svm 就說明支持 VT;如果沒有任何的輸出,說明你的 cpu 不支持,將無法成功安裝 KVM 虛擬機。
2. 確保BIOS里開啟VT:
Intel(R) Virtualization Tech [Enabled]
如有必要,還需在 BIOS 中開啟 VT
安裝虛擬機軟件
安裝相關的軟件包
yum search kvm #使用search查尋KVM的軟件包 yum install #kvm的軟件包
也可通過這兩種方法來安裝,在 ISO 鏡像中的 rpm 包和 yum 來
安裝 KVM 有兩種方式:
通過 YUM 安裝,在有 INTERNET 接入的地方可以使用,使用方法比較簡單。
安裝 KVM 和 virtinst(一個創建虛擬機的工 具),我們運行
yum install kvm kmod-kvm qemu libvirt python-virtinst
然后重新啟動系統:
Reboot
通過 CentOS 自帶光盤中的 RPM 包進行安裝
安裝 KVM 需要以下一些包:
kmod-kvm x86_64 83-164.el5_5.15 kvm x86_64 83-164.el5_5.15 libvirt i386 0.6.3-33.el5_5.1 libvirt x86_64 0.6.3-33.el5_5.1 python-virtinst noarch 0.400.3-9.el5 qemu x86_64 0.9.0-4 所需的依存包為: bridge-utils x86_64 1.1-2 celt051 x86_64 0.5.1.3-0.el5 e4fsprogs-libs i386 1.41.9-3.el5 e4fsprogs-libs x86_64 1.41.9-3.el5 etherboot-zroms-kvm x86_64 5.4.4-13.el5.centos iscsi-initiator-utils x86_64 6.2.0.871-0.16.el5 libvirt-python x86_64 0.6.3-33.el5_5.1 log4cpp x86_64 1.0-9.el5 qcairo x86_64 1.8.7.1-3.el5 qffmpeg-libs x86_64 0.4.9-0.16.20080908.el5_5 qpixman x86_64 0.13.3-4.el5 qspice-libs x86_64 0.3.0-54.el5_5.1 xen-libs i386 3.0.3-105.el5_5.5 xen-libs x86_64 3.0.3-105.el5_5.5 xz-libs i386 4.999.9-0.3.beta.20091007git.el5 xz-libs x86_64 4.999.9-0.3.beta.20091007git.el5
將其放在一個文件夾內,使用 rpm –ivh *.rpm 命令來進行安裝?;蛘呤褂?rpm -i ( or --install) options file1.rpm file2.rpm... fileN.rpm 將每個 RPM 包列出進行安裝。
驗證 KVM 是否安裝完成
使用下列命令檢查 KVM 是否成功安裝
virsh -c qemu:///system list
將會顯示如下結果:
[root@server1 ~]# virsh -c qemu:///system list Id Name State
軟件包安裝完畢后,加載 kvm 模塊
modprobe kvm
檢查模塊是否加載成功,執行如下命令:
lsmod |grep kvm
如果顯示兩行,說明模塊正確加載:
kvm_intel 47790 0 kvm 300762 1 kvm_intel
如果只顯示一行,請檢查
cpu 是否支持 VT 技術
bios 中是否將 cpu 的 VT 開啟
接下來配置橋接網卡,網上有現成的腳本可以使用,這個是我在之前測試convirt時發現的,實際上是convirt的環境配置工具。
先將工具包下載下來下了(安裝kvm系統可以上網)
wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
然后解壓軟件包:
tar zxvf convirture-tools-2.0.1.tar.gz #(這個一定要放到root目錄里才行) /root/convirture-tools/install/managed_server/scripts/convirt-tool --bridge setup
執行完上述命令后,會自動將橋接網卡配置好,跑橋接自動好。
啟動服務
/etc/init.d/libvirt-guests start /etc/init.d/libvirtd start
到此,kvm 虛擬化環境就全部配置完畢了
libvirt:使用最多的KVM虛擬化管理工具和應用程序接口,即通過 libvirt 調用 KVM 創建虛擬機,libvirt 是 KVM 通用的訪問 API,其不但能管理 KVM,還能管理 VMware、Xen、Hyper-V、virtualBox 等虛擬化方案。
virsh:是一個常用的管理 KVM 虛擬化的命令行工具,常用語管理運行在單個宿主機上的虛擬機,virsh是一個使用C語言編寫調用 libvirt API 的虛擬化管理命令行工具。
virt-manager:一個虛擬化管理圖形軟件,其底層也是調用 libvirt API 來完成對虛擬機的操作,包括虛擬機的創建、刪除、啟動、停止以及一些簡單的監控功能等。
配置網絡橋接
進入目錄 /etc/sysconfig/network-scripts,復制一份原有的 ifcfg-eth0 為 ifcfg-br0
cp ifcfg-eth0 ifcfg-br0
修改 ifcfg-br0,內容如下:
DEVICE="br0" BOOTPROTO=static ONBOOT="yes" TYPE="Bridge" IPADDR=192.168.31.60 GATEWAY=192.168.31.1 NETMASK=255.255.255.0 DEFROUTE=yes
IPADDR、GATEWAY、NETMASK 根據自己的實際情況修改。
修改 ifcfg-eth0, 內容如下:
DEVICE="eth0" BOOTPROTO=none NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" BRIDGE="br0" HWADDR=F8:DB:88:FF:99:E3 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System eth0"
重啟網絡服務即可。
/etc/init.d/network restart
如果出現問題,關閉 NetworkManager 后重試。
chkconfig NetworkManager off service NetworkManager stop
使用 virt-install 工具安裝 guest 系統
創建硬盤映像文件
使用 qemu-img 命令創建
qemu-img create -f raw /home/kvm_data/centos7.82C8G.img 100G
或使用 dd 命令創建
dd bs=1M count=8096 if=/dev/zero of=/var/lib/libvirt/images/test.img
qemu-img 是創建是文件格式是稀疏文件,優點是速度超快,由于是稀疏文件,性能可能會比第二種略差,通過如下命令查看詳情
qemu-img info /var/lib/libvirt/images/test.img
輸出為:注意其中 disk size 為 0
image: test.img file format: raw virtual size: 8.0G (8589934592 bytes) disk size: 0
通過iso文件安裝系統
界面安裝:需要通過 vnc 連接上去。
virt-install --name=vserver1 --ram 4096 --vcpus=2 --disk path=/home/kvm_data/centos7.8.img,size=100 --accelerate --cdrom /home/software/CentOS-7-x86_64-DVD-2003.iso --graphics vnc,listen=0.0.0.0 --network bridge=br0 --force --autostart --connect qemu:///system
命令行安裝:不需要 vnc 連接上去。
virt-install --name=vserver1 --memory=4096,maxmemory=6144 --vcpus=2,maxvcpus=4 --os-type=linux --os-variant=rhel7 --location=/home/software/CentOS-7-x86_64-DVD-2003.iso --disk path=/home/kvm_data/centos7.8.img,size=10 --bridge=virbr0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
虛擬機配置文件
libvirtd 配置文件
配置文件位置:
/etc/libvirt/libvirtd.conf
日志配置:
#將日志級別設置為 1(調試) log_level = 1 #指定日志輸出文件名稱 log_outputs="1:file:/var/log/libvirt/libvirtd.log"
注意 :libvirtd. 日志文件可能會飛速增長。 用戶應配置 logrotate ,否則您的 /var 文件系統最后會裝滿內容。
以上的日志的輸出級別為 debug 級別.這個級別的日志是最多的,一般只在開發以及測試的時候使用。而在生產運行環境中,日志的級別為 info,warn,error,fatal. 以下前面的數字為他們的 level.
1 debug 2 info 3 warn 4 error 5 fatal
重啟 libvirtd 。虛擬機 Guest 操作系統正在運行時可重啟 libvirtd。
/etc/init.d/libvirtd restart
如果在目錄下還是沒發現日志文件,那么你可能需要使用一下命令來運行 libvirtd.
libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf
查看 virsh 管理 qemu 虛擬機的信息
在使用 virsh 管理 qemu 的虛擬機時候,也是有日志的輸出的.
具體的 log 在目錄 /var/log/livirt/qemu/ 下面,具體的 log 文件名與虛擬機名字關聯.
使用
查看所有虛擬機狀態
[root@server1 ~]# virsh list --all Id Name State ---------------------------------------------------- - centos7.0 shut off - centos7.0-2 shut off [root@server1 ~]#
查看指定虛擬機狀態
[root@server1 ~]# virsh domstate centos7.0 shut off [root@server1 ~]#
手動啟動虛擬機
[root@server1 ~]# virsh start centos7.0 Domain centos7.0 started [root@server1 ~]# virsh domstate centos7.0 running [root@server1 ~]#
手動關閉虛擬機
[root@server1 ~]# virsh shutdown centos7.0 Domain centos7.0 is being shutdown [root@server1 ~]# virsh domstate centos7.0 shut off [root@server1 ~]#
直接通過主機配置文檔啟動主機
virsh create /etc/libvirt/qemu/node1.xml
關機虛擬機
virsh shutdown node1
重啟虛擬機
virsh reboot node1
手動掛起/恢復虛擬機
[root@server1 ~]# virsh suspend centos7.0 Domain centos7.0 suspended [root@server1 ~]# virsh resume centos7.0 Domain centos7.0 resumed [root@server1 ~]# virsh domstate centos7.0 running [root@server1 ~]#
斷電關閉虛擬機
[root@server1 ~]#virsh destroy centos7.0
設置隨宿主啟動(開機啟動)
[root@server1 ~]#virsh autostart centos7.0
取消開機啟動
[root@server1 ~]#virsh autostart --disable centos7.0
刪除虛擬機
[root@server1 ~]#virsh undefine centos7.0
導出(備份)虛擬機配置文件
[root@server1 ~]#virsh dumpxml centos6 > /home/vpsbak/centos6bak.xml
編輯虛擬機配置文件
配置文件位置是 /etc/libvirt/qemu 下,可以用 vim 進行編輯,但是建議使用 KVM 提供的命令進行編輯:
[root@server1 ~]#virsh edit centos7.0
查看虛擬機磁盤信息
[root@server1 ~]#qemu-img info vm01.img image: vm01.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 3.3G cluster_size: 65536 Format specific information: compat: 0.10
查看指定虛擬機使用磁盤
[root@server1 ~]#virsh domblklist vm01 目標 源 ------------------------------------------------ vda /home/vps/vm01.img vdb /home/vps/data.img hda
虛擬機遷移宿主物理服務器
備份虛擬機配置文件
[root@kvm6 vps] virsh dumpxml centos6 > /home/vpsbak/centos6.xml
關機,遷移配置文件和磁盤文件,配置文件路徑是 /etc/libvirt/qemu
[root@kvm6 vps] scp /home/vpsbak/centos6.xml root@192.168.0.3:/etc/libvirt/qemu/ [root@kvm6 vps] scp /home/vpsdata/vps/centos6.qcow2 root@192.168.0.3:/data/vpsdata/vps
激活虛擬機配置文件
[root@server1 ~]#virsh define /etc/libvirt/qemu/centos6.xml
獲取虛機網卡接口
domiflist(domain)顯示網卡接口:
$ virsh domiflist vm1 Interface Type Source Model MAC ------------------------------------------------------- vnet0 network default rtl8139 52:54:00:0e:cb:48
獲取網卡實時信息
domifstat(demo vnet0) 顯示網卡信息 :
$ virsh domifstat vm1 vnet0 vnet0 rx_bytes 51575 vnet0 rx_packets 863 vnet0 rx_errs 0 vnet0 rx_drop 0 vnet0 tx_bytes 4543 vnet0 tx_packets 44 vnet0 tx_errs 0 vnet0 tx_drop 0
顯示虛擬機的信息
dominfo(demo)顯示虛擬機的信息
$ virsh dominfo vm1 Id: 4 Name: vm1 UUID: b961bd90-6445-4f61-9f14-77dd8c407cfb OS Type: hvm State: running CPU(s): 1 CPU time: 97.1s Max memory: 524288 KiB Used memory: 524288 KiB Persistent: yes Autostart: disable Managed save: no Security model: apparmor Security DOI: 0 Security label: libvirt-b961bd90-6445-4f61-9f14-77dd8c407cfb (enforcing)
獲取虛擬機的UUID
domuuid (demo)顯示虛擬機的id
$ virsh domuuid vm1 b961bd90-6445-4f61-9f14-77dd8c407cfb
獲取虛擬機的ID
domid(id or name ) 根據名字得到id或根據id得到名字
$ virsh domid vm1 4 $ virsh domname 4 generic
23、顯示虛擬機的運行狀態
domstate (demo) 顯示虛擬機的狀態
$ virsh domstate vm1 running
domcontrol(demo) 返回虛擬機的狀態ok or error
$ virsh domcontrol vm1 ok
編輯虛擬機的配置文件
edit (demo) 編輯主機的配置文件,可調整內存、CPU等配置.
$ virsh edit generic
virsh console連接虛機
# 連接命令 virsh console vm1
需要在虛機上做一下配置
centos 7
grubby --update-kernel=ALL --args="console=ttyS0" reboot
centos 6
# 執行如下腳本 #/bin/sh GRUB=/etc/grub.conf BOOT_GRUB=/boot/grub/grub.conf echo "ttyS0" >> /etc/securetty sed -i '/\tkernel/{s/$/ console=ttyS0/g}' ${GRUB} sed -i '/\tkernel/{s/$/ console=ttyS0/g}' ${BOOT_GRUB} echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >> /etc/inittab
ubuntu
systemctl disable systemd-networkd-wait-online systemctl enable serial-getty@ttyS0.service systemctl start serial-getty@ttyS0.service
為虛擬機添加一塊qcow2磁盤
查看磁盤大小與磁盤格式
查看磁盤格式和磁盤文件位置:
$ virsh edit generic
查看硬盤格式信息
$ qemu-img info /var/lib/libvirt/images/generic.qcow2 file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 2.3G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false
添加一塊qcow2磁盤
$ qemu-img create -f qcow2 test01_add.qcow2 2G
將新增的磁盤文件添加到虛擬機
$ virsh edit generic 添加如下內容:
啟動虛擬機,分區、格式化、掛載磁盤
修改虛擬機內存及CPU大小
$ virsh edit generic
快照管理
創建快照
$ virsh snapshot-create-as generic snap1
查看快照
$ virsh snapshot-list generic Name Creation Time State ------------------------------------------------------------ snap1 2018-05-23 14:17:40 +0800 running
恢復快照
$ virsh snapshot-revert generic snap1
顯示快照信息
$ virsh snapshot-info generic snap1 Name: snap1 Domain: generic Current: yes State: running Location: internal Parent: - Children: 0 Descendants: 0 Metadata: yes
刪除快照
$ virsh snapshot-delete generic snap1
虛擬機克隆
現有本地虛擬機需要先停止
查看本地虛擬機
$ virsh list –all Id Name State ---------------------------------------------------- - generic shut off
從generic克隆一個虛擬機vm1
執行克隆操作,使用磁盤文件vm1.img
$ virt-clone -o generic -n vm1 -f /data/image/vm1.img
啟動虛擬機
$ virsh start vm1
啟動后修改主機名、IP等
查看現有虛擬機
$ virsh list –all Id Name State ---------------------------------------------------- 8 vm1 running
這里將從vm1克隆另一個虛擬機vm2
導出vm1虛擬機配置文件
$ virsh dumpxml vm1 > vm2.xml ```bash 4. 查看vm1磁盤文件所在位置:
$ virsh edit vm1
定義vm2配置文件
$ virsh define vm2.xml Domain vm2 defined from vm2.xml
此時會看到vm2虛擬機已經生成
$ virsh list –all Id Name State ---------------------------------------------------- - vm2 shut off
啟動vm3,重新更改主機名、IP等。
KVM Linux 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。