centos7上使用virt-install命令建立kvm虛擬機

  1、使用virt-install命令建立虛擬機
linux

      virt-install命令既能夠交互運行,也能夠以自動的方式建立與部署虛擬機系統,配合kickstart技術能夠實現無人值守安裝虛擬機操做系統。該命令提供了不少選項,使用virt-install --help能夠查看選選項和幫助ubuntu

image.png

命令格式:緩存

virt-install [選項]安全

-h                                             查看幫助bash

--connect=CONNECT              鏈接非默認的hypervisor,默認爲qemu:///system網絡

-n name                                   新的虛擬機主機實例名稱架構

-r MEMORT                              虛擬機內存設置dom

--arch=ARCH                            cpu架構ide

--machine=MACHINE              虛擬機模擬機類型,Xen或者KVM等。工具

--vcpus=VCPUS                        虛擬主機CPU個數

-c CDROM                                設置光盤鏡像或光盤設備路徑

-l LOCATION                             指定安裝源路徑

--pxe                                         使用pxe協議啓動

--import                                    導入現有的虛擬機

-x EXTRA                                    附加的內核參數,如-x "ks=http://server/server.ks"

--os-type=Type                         操做系統類型,如linux、windwos等

--disk=DISKOPTS                       設置虛擬機磁盤,如--disk /dev/storage/path

-w   NETWORK                           設置虛擬機網絡,如-w bridge=br0

--noneworks                               虛擬機不設置任何網絡接口

-m MAC                                    設置虛擬機MAC地址

--vnc                                           設置經過vnc查看虛擬機

--hvm                                           使用全虛擬化技術

--paravirt                                    使用半虛擬化技術

--soundhw MODEL                    設置聲卡設備

--autostart                                  設置虛擬機爲開機啓動

官方幫助文檔案例以下:


1)安裝fedora 13,使用virtio 驅動的磁盤與網卡設備,建立8GB的存儲文件,使用CDROM安裝操做系統,使用VNC查看虛擬機界面

virt-install --connect qemu:///system --virt-type kvm --name demo --ram 500 --disk path=/var/lib/libvirt/images/demo.img,size=8 -graphics vnc --cdrom /dev/cdrom --os-variant fedora13


2)安裝Fedora9 ,使用LVM分區,虛擬機網絡設置爲從PXE啓動,使用vnc鏈接虛擬機界面:

virt-install --connect qemu:///system --name demo --ram 500 --disk path=/dev/HostVG/DemoVM --virt-type qemu --graphics vnc --os-variant fedora9

3)在真實的磁盤中安裝虛擬機,使用默認QEMU hypervisor,使用SDL鏈接虛擬機界面經過遠程初始化及安裝

virt-install --connect qemu:///system --name demo --disk path=/dev/hdc --network brige=eno1 --arch ppc64 --graphics sdl --location  /linux/core/6/x86_64/os/

如下爲在本地安裝一臺ubuntu虛擬機示意,

virt-install \
\--connect qemu:///system                                     #鏈接默認本機hypervisor
\--virt-type kvm                                              #虛擬化類型爲kvm        
\--vcpus=1                                                    #vcpu爲1
\--name unbuntu16                                             #虛擬機名稱
\--ram 512                                                                              #內存大小
\--cdrom /var/lib/libvirt/images/ubuntu-16.04.5-server-amd64.iso                         #指定使用cdrom光驅啓動,指定鏡像路徑
\--disk path=/var/lib/libvirt/images/ubuuntu16.img,size=50,format=qcow2,bus=virtio       #指定硬盤路徑,大小,格式爲qcow2,總線類型爲virtio
\--network bridge=br0                                                                    #指定虛擬網絡類型爲網橋br0
\--os-type=linux                                                                            #指定虛擬機操做系統類型爲linux

image.png

而後跳出安裝界面

image.png

而後使用virt-manger查看虛擬機硬件選項,與命令行配置一致

image.png


2、 virsh命令

    virsh是很是優秀的hypervisor和虛擬主機的命令行管理工具,它是由libvirt-client軟件提供的命令,可使用該命令行工具替代圖形界面的virt-manager工具

語法 virsh[選項] 命令 [參數]

cd                             更改當前目錄

connect                        鏈接(從新鏈接)到 hypervisor

echo                           echo 參數

exit                           退出這個非交互式終端

help                           打印幫助

pwd                            輸出當前目錄

 quit                           退出這個非交互式終端

經常使用命令:

list      列出正在運行的虛擬機列表

如下域其實就是domain,kvm中指虛擬機

image.png

autostart -自動開始一個域,配置虛擬機自啓,--disable表示禁用自啓動

connect - 鏈接(從新鏈接)到 hypervisor

dumpxml - XML 中的域信息,輸出特定虛擬機XML格式的配置文件

 create - 從一個 XML 文件建立一個域,新虛擬機

define - 從一個 XML 文件定義(但不開始)一個域

destroy - 銷燬(中止)域

 dominfo - 域信息

domid - 把一個域名或 UUID 轉換爲域 id

domstate - 域狀態

edit - 編輯某個域的 XML 配置

reboot - 從新啓動一個域

shutdown - 關閉一個域

destroy - 銷燬(中止)域

start - 開始一個(之前定義的)非活躍的域

save - 把一個域的狀態保存到一個文件

restore - 從一個存在一個文件中的狀態恢復一個域

screenshot - 提取當前域控制檯截圖並保存到文件中

suspend - 掛起一個域

resume - 從新恢復一個域

setmem - 改變內存的分配

setmaxmem - 改變最大內存限制值

setvcpus - 改變虛擬 CPU 個數

vcpuinfo - 詳細的域 vcpu 信息

attach-device - 從一個XML文件添加設備

net-create - 從一個 XML 文件建立一個網絡

net-dumpxml - 輸出XML格式的網絡信息

net-list - 列出網絡

net-start - 開始一個(之前定義的)不活躍的網絡

iface-define-使用XML文件定義主機網絡接口

iface-list - 物理主機接口列表

snapshot-create - 使用 XML 生成快照

snapshot-delete - 刪除域快照

snapshot-dumpxml - 爲域快照備份xml

snapshot-list - 爲域列出快照


1)查看當前正在運行的虛擬機列表,查看全部的虛擬機列表

image.png

2)設置虛擬機爲開機自啓

image.png


3)備份虛擬機配置文件,將配置文件保存爲ubuntu.xml

virsh dumpxml ubuntu16 > ubntu16.xml

image.png


4)查看虛擬機的基本信息

virsh dominfo 6

image.png


5)設定虛擬內存大小,最大內存以及vcpu個數,下次重啓生效

virsh setmaxmem ubuntu16 1048576 --config                #單位爲kB --config爲下次啓動生效
virsh setmem ubuntu16 1048576 --config
virsh setvcpus unbuntu16 2 --config


3、虛擬存儲

 kvm存儲池是被libvirt所管理的文件、目錄或存儲設備,存儲池能夠位於本地,也能夠經過網絡共享,存儲池最終能夠被虛擬機所使用。默認libvirt使用基於目錄的存儲池設計,/var/lib/libvirt/images目錄就是默認的存儲池。本地存儲池能夠是本地的一個目錄、磁盤設備、物理分區或LVM卷,可是本地存儲池不適合於大規模產品部署,也不支持虛擬機遷移功能。網絡共享存儲池使用標準的網絡協議進行存儲設備的共享,它支持SAN,IP-SAN,NFS,GFS2等協議。在kvm虛擬化技術中,存儲池能夠包含多個存儲卷,對虛擬機而言,這些存儲卷都被是被爲物理硬件存儲設備。

3.1 建立基於目錄的虛擬存儲池與存儲卷

建立目錄

mkdir /var/lib/libvirt/test

修改文件安全相關屬性

chown root.root /var/lib/libvirt/test/
chmod 700 /var/lib/libvirt/test/

使用virsh命令建立存儲池,

virsh pool-define-as test --type dir --target /var/lib/libvirt/test/        #建立爲目錄類型的存儲池
virsh pool-build test                                                    #構建池
virsh pool-start test                                 #激活
virsh pool-autostart test                           #自動激活
virsh pool-list

image.png

還有可使用xml定義的方式建立存儲池,首先建立一個名爲test的xml文檔

# cat test   
<pool type='dir'>                     #定義類型爲目錄
  <name>test</name>                  #定義名稱爲test
  <source>  
  </source>  
  <target>  
    <path>/var/lib/libvirt/test</path>   #定義目錄       
    <permissions>  
      <mode>0700</mode>  
      <owner>-1</owner>  
      <group>-1</group>  
    </permissions>  
  </target>  
</pool>

而後調用pool-create命令,加載xml文件

virsh pool-create test
virsh pool-list

image.png


而後再建立存儲卷,格式爲qcow2,大小爲10G

virsh vol-create-as test vol-test.qcow2 10G --format qcow2            
virsh vol-list test            #查看池下的卷

image.png


而後爲虛擬機添加硬盤,將test存儲池中的vol-test.qcow2卷做爲硬盤添加到虛擬機ubuntu中

 virsh attach-disk
\--domain ubuntu16                     #指定虛擬機
\--source /var/lib/libvirt/test/vol-test.qcow2     #指定卷的路徑
\--target vdb                 #指定將硬盤識別爲虛擬機的vdb
\--targetbus virtio           #總線協議
\--driver qemu                #驅動類型
\--subdriver qcow2            #磁盤源的驅動類型
\--sourcetype block           #磁盤源方式 file即文件設備,block爲塊設備
\--cache none                 #不用緩存
\--persistent                 #會讓此操做同時對運行的虛擬機以及虛擬機的xml文件都會生效
\--config                     #下次重啓生效

image.png


此時登錄虛擬機,能夠看到硬盤已經添加

image.png

相關文章
相關標籤/搜索