kvm經常使用操做

libguestfs-tools 比較好的kvm管理工具
虛擬機的管理工具   convirts
虛擬化:xen(半虛擬化)宿主和客服機都須要該系統內核,系統內核替換接管系統管理 不須要cpu支持虛擬化
        kvm(僅全虛擬化)提供完整的硬件資源且不知道宿主存在linux


grep --color=auto 'vmx|svm' /proc/cupinfo
若是輸出的信息中有vmx,說明intel處理器支持徹底虛擬化。若是顯示svm,說明是AMD的處理器支持虛擬化。數據庫


經過yum安裝虛擬化的軟件包::yum install -y kvm virt-*  libvirt  bridge-utils qemu-img gcc*
說明:
kvm:軟件包中含有KVM內核模塊,它在默認linux內核中提供kvm管理程序
libvirts:安裝虛擬機管理工具,使用virsh等命令來管理和控制虛擬機。
bridge-utils:設置網絡網卡橋接。
virt-*:建立、克隆虛擬機命令,以及圖形化管理工具virt-manager
qemu-img:安裝qemu組件,使用qemu命令來建立磁盤等。
啓動libvirtd出現一下狀況:
   Starting libvirtd daemon: libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference   需安裝:yum update device-mapper-libs 更新庫centos


如出現  Starting libvirtd daemon: libvirtd: initialization failed  [FAILED]需echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile 並source /etc/profile
打開:/etc/init.d/messagebus start 服務
必須關閉 service NetworkManager stop  不然會出現錯誤
安裝虛擬系統:
virt-install \
--name  www \
--ram 512 \
--disk path=/mnt/www.img,size=30 \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'cdrom=/root/test' \
--extra-args 'console=ttyS0,115200n8 serial'網絡


帶圖形vnc的配置
--vnclisten=0.0.0.0   ##指定VNC綁定IP,默認綁定127.0.0.1,這裏改成0.0.0.0
--vncport=自定義   指定VNC監聽端口(默認爲5900)
--vnc   啓用vnc管理
--accelerate 加速app


                         
克隆時間同步問題
01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.com >> /dev/null 2>$1dom



virsh一些經常使用的操做
virsh -c qemu:///system list    查看當前的虛擬系統
brctl show 列出當前全部的網橋接口
virsh list   列出運行的虛擬機
virsh list --all   列出全部的虛擬機
virsh console     名字 ssh ip地址   進入指定名字的 虛擬機
virsh pool-list  查看當前磁盤狀況
virsh pool-info+磁盤 顯示這塊磁盤的詳細信息
yum -y install acpid     與virsh shutdown 名字  連用
virsh showdown 名字    不是正的關閉虛擬機
virsh start 名字 --console    開啓機子並進入控制模式
virsh suspend 名字   掛起子機
virsh resume  名字   恢復子機
virsh destroy 名字   刪除一個子機    強制關閉電源
virsh define 名字   刪除子機名 與virsh destroy 連用
virsh start  名字   開啓一個子機
virsh create /etc/libvirt/qemu/子機名    經過配置文件開啓關閉的子機名
virsh autostart 名字  配置開機自動開啓一個子機
virsh autostart --disable 名字   配置開機不自動運行子機
virsh dumpxml 名字 > /etc/libvirt/qemu/新名.xml 導出kvm虛擬機配置文件
virsh edit 子機名字 == vi /etc/libvirt/qemu/名字   編輯虛擬機配置文件
virsh snapshot-create 元文件名   克隆文件名          建立一個快照
virsh snapshot-current    元文件名   克隆文件名  顯示當前文件快照的詳細信息並激活快照版
virsh snapshot-info   源文件名   顯示當前文件下的快照
virsh snapshot-delete   源文件名   克隆文件名    刪除一個快照ssh



直接克隆虛擬機
需關閉子機
virt-clone -o 子機名 -n 新的子機名 -f 新子機名鏡像文件存放的位置(經過cat /etc/libvirt/qemu/原子機名)
經過複製配置文件和磁盤克隆
1.複製鏡像文件。2.導出複製子機的數據庫 virsh dumpxml 子機 > /etc/libvirt/qemu/新子機.xml
3.修改新子機.xml文件:包括主機名 鏡像名  mac地址ide



qemu-img create -f qcow2 子文件鏡像位置 5G   指定硬盤分區的格式爲qcow2
該配置文件信息添加磁盤
qemu-img create -f qcow2 子文件鏡像位置 -o preallocation=metadata工具


現有的虛擬磁盤擴容
qemu-img resize 子文件鏡像位置 +5G 表示對現有磁盤增長5G容量
pvcreate /dev/vda3 建立物理卷
portprobe 使分區表生效 無需重啓
pvs 查看物理卷
vgextend VolGroup /dev/vda3 建立卷組
vgs 顯示卷組
lvs 邏輯卷
lvextend -l +100%FREE /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_rootxml



磁盤快照:在關閉虛擬機的狀態下
1.。。現有磁盤鏡像格式與轉換(raw--qcow2)
查看現有磁盤文件格式:qemu-img info 子文件鏡像位置
2.。。qemu-img convert -f raw -O qcow2 子文件鏡像位置/data/centos1.img  目標子文件鏡像位置名 /data/centos1.qcow2
-f 源文件 -O目標文件格式    這裏只是拷貝了一份並將格式轉換成qcow2


3.。。修改磁盤文件格式(源鏡像文件)   virsh edit centos1 (包括:磁盤類型(qcow2),文件格式(/data/centos1.qcow2)
4.。。對虛擬機進行快照管理:
qemu-img resize 子文件鏡像位置 +5G 表示對現有磁盤增長5G容量


快照:
virsh snapshot-create-as 源子機名 快照子機名    進行快照複製
virsh snapshot-list+源子機名      查看虛擬機鏡像快照的版本
virsh snapshot-current 查看當前虛擬機鏡像快照的版本
virsh snapshot-info 源子機名  快照子機名   查看源主機下的快照主機
virsh snapshot-delete 源子機名 快照子機名  刪除源主機下的快照主機
virsh domstate 子機名 確認虛擬機是否關機
virsh snapshot-revert 源子機 恢復的快照子機名    執行快照主機恢復


如何添加虛擬磁盤:
qemu-img create -f qcow2 /data/子機名.qcow2  2G  添加一塊2G的硬盤
ll /data
virsh destroy 子機名 強制關閉電源
virsh edit 子機名  
複製硬盤信息並作好磁盤類型和地址列的修改
virsh start 子機名
格式,掛載就可使用了



調整內存和網卡
virsh domiflist 子機名 查看現有網卡信息
virsh attach-interface 子機名 --type bridge --source br0  建立新的一塊網卡
virsh dumpxml test > /etc/libvert/qemu/test.xml


虛擬機遷移
關閉遷移機


LVM操做的相關命令:  配置lvm 擴展磁盤
partprobe 解決創建分區後從新刷新分區的功能,防止重啓。
fdisk -l :查看系統中都認到了那些物理硬盤    
pvdisplay:查看系統中已經建立好的物理卷  =pvs   
pvcreate:建立一個新的物理卷    
pvremove:刪除一個物理卷(也就是從物理卷中刪除一個LVM標籤)    
vgdisplay:查看系統中的卷組    
vgcreate:建立一個新的卷組    
vgreduce:從卷組中刪除一個物理卷(也就是縮小卷組)    
vgremove:刪除一個卷組    
lvdisplay:查看系統中已經建立好的邏輯卷    
lvcreate:建立一個新的邏輯卷    
lvreduce:縮小邏輯卷(也就是從一個邏輯卷中減小一些LE)    
lvremove:從系統中刪除一個邏輯卷    
mkfs:基於邏輯卷建立一個相應類型的文件系統    
mkdir -p $mount_piont:建立一個掛載目錄    
建立好的文件系統位於:     /dev/$create_vg_name/$lv_name    
mount /dev/$create_vg_name/$lv_name $mount_piont:掛載文件系統


vgscan:讀取系統中建立的全部卷組   
vgchange -a y :激活全部卷組  (開機執行,redhat可在/etc/rc.d/rc.sysinit系統啓動初始化腳本里能夠找到)    vgchange -a n :關閉全部卷組(提示:必須在umount全部的文件系統後,才能成功執行


虛擬機在線添加現有磁盤
virsh domblklist 虛擬機   查看現有虛擬機磁盤
qemu-img create -f qcow2 www1.qcow 2G   添加2G的一塊磁盤  
qemu-img info www1.qcow  查看添加磁盤的格式以及信息
virsh attach-disk www1 磁盤文件存放的位置 vdb --cache=none --subdriver=qcow2    在線添加虛擬磁盤
進入虛擬機 經過ispci查看磁盤設備




鏡像文件考到mnt下的狀況virt-install \ --name  aming1 \ --ram 512 \ --disk path=/data/aming1.img,size=30 \ --vcpus 1 \ --os-type linux \ --os-variant rhel6 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location '/mnt/鏡像文件' \   鏡像文件需放在mnt下 不然會出錯。光盤:--location '/mnt/'     mount /dev/cdrom /mnt --extra-args 'console=ttyS0,115200n8 serial'

相關文章
相關標籤/搜索