您好,登錄后才能下訂單哦!
第四章:KVM使用進階
https://launchpad.net/cirros/+download //可以下載別人已經安裝好的鏡像文件 ,就是一個已經安裝好的ios
很小,也就9M
qemu-kvm -name "cirros" -smp 4,cores=2,socket=4 -m 512 -drive file=/root/cirros-0.3.0-x86_64-disk.img,media=disk -net nic -net tap,ifname=vnet0,downscript=no -nographic
//不使用圖形化界面
沒有圖形化界面的時候,也可以使用monitor //ctrl +1 ,ctrl +2在
Ctrl +a ,c //在control和monitor之間進行切換
Ctrl+a ,h /顯示幫助信息
//ctrl +a ,c :infor 查看具體硬件信息
//help info查看幫助信息
//控制界面,info信息
:info kvm
:info name
:info status
:info mem
:info tlb
:info cpus
:info vnc
:info mice //查看幫助信息
:info history
// help 則可以查看所有的幫助信息,包括所有的
Savevm :實現掛起
Loadvm:載入快照
Stop:停止當前emulation進程
C|conn :繼續使用當前進程
Device_add : --add device :添加設備
Device_del :刪除設備
Migrate:遷移設備 //migrate:遷移
遷移://把A上的遷移到B上去
兩個hypervisor之間實現遷移//A上運行一個hypervisor,B想要實施遷移,也要啟動一個虛擬機實例
//B啟動的時候需要說明incoming機制,他不會啟動起來,會等到其他其他虛擬機實例遷移到這里來
A上使用migrate,B上使用incoming,//傳遞完成后,A也就結束了
A和B應該在同一個網段內
Ha,Hb主機
Hb:
Qemu-kvm .... -incoming tcp:0:6767 //6767是一個tcp,0表示允許任意其他主機發起連接請求指令,進行遷移的
Ha:
Monitor: migrate tcp:10.0.0.1:6767 //遷移的是內存中的數據
登錄進去后:
Cat /proc/sysinfo :查看cpu信息,默認是qemu的cpu
Qemu-kvm -cpu ? //可以啟動的時候指定cpu類型,
Qemu-kvm -cpu host //使用主機的cpu
Qemu-kvm的其它的用到的參數:
動態遷移時用到的選項:-incoming tcp:0:PORT //使用的端口
讓qemu-kvm進程運行在后臺:-daemonize
開啟USB總線:-usb
guest os為windows時,-usb -usbdevice tablet //使用usb鼠標
打開KVM的支持:
-enable-kvm //打開kvm支持,qemu-kvm 默認就啟用了此選項
打開聲音設備:
qemu-kvm -soundhw ?
指定存儲設備:
-iSCSI //使用iscsi協議,直接關聯到某設備協議的話
通過URL指定使用的iscsi設備 // iscsi://<target_ip>[:port]/<target_iqn>/<lun>
Qemu-kvm -drive file=iscsi://tgt.magedu.com/iqn.2014-05.com.magedu.tg1/1 //使用iscsi設備作為存儲設備
Qemu-kvm -iscsi initiator-name= -drive file=iscsi:/tgt.magedu.com/iqn.2014-05.com.magedu.tgt1/1
指定使用bios文件:
-bios /path/to/some_bios_program //指定bios文件
-initrd
-append:向內核傳遞的參數列表
Libvirt:工具實現虛擬機管理:
Virt-manger,virt-install,virsh //一般通過virsh-install創建虛擬機,然后通過virsh去使用模板去創建其他主機
Libvirt使用的安裝的話娿
Virst-install工具的使用
virt-install是一個命令行工具,它能夠為KVM、Xen或其它支持libvrit API的hypervisor創建虛擬機并完成GuestOS安裝;此外,它能夠基于串行控制臺、VNC或SDL支持文本或圖形安裝界面。安裝過程可以使用本地的安裝介質如CDROM,也可以通過網絡方式如NFS、HTTP或FTP服務實現。對于通過網絡安裝的方式,virt-install可以自動加載必要的文件以啟動安裝過程而無須額外提供引導工具。當然,virt-install也支持PXE方式的安裝過程,也能夠直接使用現有的磁盤映像直接啟動安裝過程。
virt-install命令有許多選項,這些選項大體可分為下面幾大類,同時對每類中的常用選項也做出簡單說明。
◇一般選項:指定虛擬機的名稱、內存大小、VCPU個數及特性等;
-n NAME, --name=NAME:虛擬機名稱,需全局惟一;
//virst-install安裝好后,在etc/libvt目錄會生成該虛擬機的配置文件,而且該配置文件將來被這個虛擬機永遠使用
//除非刪除,qemu-kvm安裝一個虛擬機,關機后,重啟需要重新制定參數
-r MEMORY, --ram=MEMORY:虛擬機內在大小,單位為MB;
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU個數及相關配置;
--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?來獲取支持的CPU模式;
◇安裝方法:指定安裝方法、GuestOS類型等;
-c CDROM, --cdrom=CDROM:光盤安裝介質;
-l LOCATION, --location=LOCATION:安裝源URL,支持FTP、HTTP及NFS等,如ftp://172.16.0.1/pub;
--pxe:基于PXE完成安裝;
--livecd: 把光盤當作LiveCD;
--os-type=DISTRO_TYPE:操作系統類型,如linux、unix或windows等;
--os-variant=DISTRO_VARIANT:某類型操作系統的變體,如rhel5、fedora8等;
-x EXTRA, --extra-args=EXTRA:根據--location指定的方式安裝GuestOS時,用于傳遞給內核的額外選項,例如指定kickstart文件的位置,--extra-args "ks=http://172.16.0.1/class.cfg"
--boot=BOOTOPTS:指定安裝過程完成后的配置選項,如指定引導設備次序、使用指定的而非安裝的kernel/initrd來引導系統啟動等 ;例如:
--boot cdrom,hd,network:指定引導次序;
--boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定啟動系統的內核及initrd文件;
◇存儲配置:指定存儲類型、位置及屬性等;
--disk=DISKOPTS:指定存儲設備及其屬性;格式為--disk /some/storage/path,opt1=val1,opt2=val2等;常用的選項有:
device:設備類型,如cdrom、disk或floppy等,默認為disk;
bus:磁盤總結類型,其值可以為ide、scsi、usb、virtio或xen;
perms:訪問權限,如rw、ro或sh(共享的可讀寫),默認為rw;
size:新建磁盤映像的大小,單位為GB;
cache:緩存模型,其值有none、writethrouth(緩存讀)及writeback(緩存讀寫);
format:磁盤映像格式,如raw、qcow2、vmdk等;
sparse:磁盤映像使用稀疏格式,即不立即分配指定大小的空間;
--nodisks:不使用本地磁盤,在LiveCD模式中常用;
◇網絡配置:指定網絡接口的網絡類型及接口屬性如MAC地址、驅動模式等;
-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:將虛擬機連入宿主機的網絡中,其中NETWORK可以為:
bridge=BRIDGE:連接至名為“BRIDEG”的橋設備;
network=NAME:連接至名為“NAME”的網絡;
其它常用的選項還有:
model:GuestOS中看到的網絡設備型號,如e1000、rtl8139或virtio等;
mac:固定的MAC地址;省略此選項時將使用隨機地址,但無論何種方式,對于KVM來說,其前三段必須為52:54:00;
--nonetworks:虛擬機不使用網絡功能;
◇圖形配置:定義虛擬機顯示功能相關的配置,如VNC相關配置;
--graphics TYPE,opt1=val1,opt2=val2:指定圖形顯示相關的配置,此選項不會配置任何顯示硬件(如顯卡),而是僅指定虛擬機啟動后對其進行訪問的接口;
TYPE:指定顯示類型,可以為vnc、sdl、spice或none等,默認為vnc;
port:TYPE為vnc或spice時其監聽的端口;
listen:TYPE為vnc或時所監聽的IP地址,默認為127.0.0.1,可以通過修改/etc/libvirt/qemu.conf定義新的默認值;
password:TYPE為vnc或spice時,為遠程訪問監聽的服務進指定認證密碼;
--noautoconsole:禁止自動連接至虛擬機的控制臺;
◇設備選項:指定文本控制臺、聲音設備、串行接口、并行接口、顯示接口等;
--serial=CHAROPTS:附加一個串行設備至當前虛擬機,根據設備類型的不同,可以使用不同的選項,格式為“--serial type,opt1=val1,opt2=val2,...”,例如:
--serial pty:創建偽終端;
--serial dev,path=HOSTPATH:附加主機設備至此虛擬機;
--video=VIDEO:指定顯卡設備模型,可用取值為cirrus、vga、qxl或vmvga;
◇虛擬化平臺:虛擬化模型(hvm或paravirt)、模擬的CPU平臺類型、模擬的主機類型、hypervisor類型(如kvm、xen或qemu等)以及當前虛擬機的UUID等;
-v, --hvm:當物理機同時支持完全虛擬化和半虛擬化時,指定使用完全虛擬化;
-p, --paravirt:指定使用半虛擬化;
--virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令獲取;
◇其它:
--autostart:指定虛擬機是否在物理啟動后自動啟動;
--print-xml:如果虛擬機不需要安裝過程(--import、--boot),則顯示生成的XML而不是創建此虛擬機;默認情況下,此選項仍會創建磁盤映像;
--force:禁止命令進入交互式模式,如果有需要回答yes或no選項,則自動回答為yes;
--dry-run:執行創建虛擬機的整個過程,但不真正創建虛擬機、改變主機上的設備配置信息及將其創建的需求通知給libvirt;
-d, --debug:顯示debug信息;
盡管virt-install命令有著類似上述的眾多選項,但實際使用中,其必須提供的選項僅包括--name、--ram、--disk(也可是--nodisks)及安裝過程相關的選項。此外,有時還需要使用括--connect=CONNCT選項來指定連接至一個非默認的hypervisor。
實驗安裝
yum install virt-viewer libvirt python-virtinst virt-manager -y
Ifconfig //libvirt會自動創建一個virbr0的接口,
Ifconfig virbr0 down
Brctl delbr virbr0 //刪除原有的,自己創建新的
Service libvirtd start //啟動libvirtd服務
systemctl start libvirtd
Virsh //即可進入virsh的交互命令行
Uri:查看當前主機的連接接口
另外一臺主機: yum install libvirt python-virtinst //不使用,只是告訴可以使用而已
Sytemctl start libvirtd
Virsh
Help iface-bridge //查看使用方法,然后 exit
//注意:加入也有virnet的話,也要刪除后自己創建
// virsh iface-bridge enp14s0 br0 :老失敗 //生成橋接設備
[root@localhost ~]# virt-install -n "centos7" --vcpus 2 -r 512 -l /usr/local/src/iso7/Ce
ntOS-7-x86_64-DVD-1511.iso --disk path=/p_w_picpaths/centos7.qcow2,bus=virtio,size=20 --network bridge=virbr0,model=virtio
//親自實踐過
1.這里有一個橋接的接口,
下面這個示例創建一個名為rhel5的虛擬機,其hypervisor為KVM,內存大小為512MB,磁盤為8G的映像文件/var/lib/libvirt/p_w_picpaths/rhel5.8.img,通過boot.iso光盤鏡像來引導啟動安裝過程。
# virt-install \
--connect qemu:///system \ //這是制定連接到哪一個hypervisor上去創建,默認為本機的hypervisor
--virt-type kvm \
--name rhel5 \
--ram 512 \
--disk path=/var/lib/libvirt/p_w_picpaths/rhel5.img,size=8 \
--graphics vnc \
--cdrom /tmp/boot.iso \
--os-variant rhel5
2.下面的示例將創建一個名為rhel6的虛擬機,其有兩個虛擬CPU,安裝方法為FTP,并指定了ks文件的位置,磁盤映像文件為稀疏格式,連接至物理主機上的名為brnet0的橋接網絡:
# virt-install \
--connect qemu:///system \
--virt-type kvm \
--name rhel6 \
--ram 1024 \
--vcpus 2 \
--network bridge=brnet0 \
--disk path=/VMs/p_w_picpaths/rhel6.img,size=120,sparse \
--location ftp://172.16.0.1/rhel6/dvd \
--extra_args “ks=http://172.16.0.1/rhel6.cfg” \
--os-variant rhel6 \
--force //強制回答為yes
3.下面的示例將創建一個名為rhel5.8的虛擬機,磁盤映像文件為稀疏模式的格式為qcow2且總線類型為virtio,安裝過程不啟動圖形界面(--nographics),但會啟動一個串行終端將安裝過程以字符形式顯示在當前文本模式下,虛擬機顯卡類型為cirrus:
# virt-install \
--connect qemu:///system \
--virt-type kvm \
--name rhel5.8 \
--vcpus 2,maxvcpus=4 \
--ram 512 \
--disk path=/VMs/p_w_picpaths/rhel5.8.img,size=120,format=qcow2,bus=virtio,sparse \
--network bridge=brnet0,model=virtio
--nographics \
--location ftp://172.16.0.1/pub \
--extra-args "ks=http://172.16.0.1/class.cfg console=ttyS0 serial" \
--os-variant rhel5 \
--force \
--video=cirrus
4.下面的示例則利用已經存在的磁盤映像文件(已經有安裝好的系統)創建一個名為rhel5.8的虛擬機:
# virt-install \
--name rhel5.8
--ram 512
--disk /VMs/rhel5.8.img
--import
每個虛擬機創建后,其配置信息保存在/etc/libvirt/qemu目錄中,文件名與虛擬機相同,格式為XML。
virsh uri: 查看當前主機上hypervisor的連接路徑;
實驗:使用原有的配置文件,創建新的虛擬機// 視頻也沒有完成
virsh dumpxml centos7 > /etc/libvirt/qemu/cirros5.xml //備份xml文件,拷貝配置文件
Vim cirros5.xml //修改配置文件,并復制磁盤
Name
Uuid
Source :硬盤文件需要修改 //可以復制原有的硬盤文件,到自己制定的目錄中
Cp /p_w_picpaths/cirros-0.3.0-x86_64-disk.img /p_w_picpaths/vm5/cirros.img
virt-install -n "cirros5" -r 512 --vcpus=2 --disk path=/p_w_picpaths/vm5/cirrors.img --network bridge=br0 --import
//導入,已經安裝好系統的硬盤,然后直接使用即可
Virsh:
undefine centos7 //刪除虛擬機,
//這個錯誤哦,一般是服務沒有啟動
Virsh的命令介紹:
1.Domain //管理各個虛擬機的
//加入把圖形界面關閉了,使用virsh console cirros :cirross為虛擬機創建時的名字,即可連接
create //創建虛擬機,并打開
define //都可以用來創建虛擬機,但是define不會打開虛擬機
undefine //刪除一個虛擬機
start //手動啟動一個虛擬機實例
shutdown //關閉一個虛擬機實例
setvcpus //調整cpu的個數
save //保存一個域狀態到文件中
restore //恢復域
domstate //查看狀態
doiflist //列出實例的接口
2.hypervisor相關
sysinfo //狀態信息
capabilities //當前 hypervisor的虛擬能力
nodeinfo //當前hypervisor的信息,系統信息
3.interface接口的 //hypervisor上的接口
4.network:虛擬機上的接口
5.snapshot 快照
6.storage pool :存儲池 //存儲池中大多數都是卷
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。