搭建kvm

###安裝配置libvirtd(須有weivirtmgr服務端使用)node

01.安裝libvirt和KVMlinux

https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server
git

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo shgithub


如開了防火牆還需打開對libvirt端口的訪問權限:web

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPTbootstrap


02.設置開機自啓vim

chkconfig libvirtd oncentos


03. 配置帳號密碼網絡

saslpasswd2 -a libvirt webvirtmgrapp

password: KvmRocks

#sasl是一種用來擴充C/S模式驗證能力的機制。

#-a  use appname as application name


04.驗證帳號密碼

virsh -c qemu+tcp://localhost/system nodeinfo

#帳號: webvirtmgr   密碼:上面設置的密碼KvmRocks


05.配置libvirtd

cat >>/etc/libvirt/libvirtd.conf<<EOF

max_clients = 1024

min_workers = 50

max_workers = 200

max_requests = 1000

max_client_requests = 200

EOF


06.重啓libvirtd

service libvirtd restart



###配置網卡的bridge模式(命令行見後面)


環境:這裏在已經作好了bond的基礎上配置bridge (沒作bond就用em1代替,配置相似)

01.修改配置ifcfg-bond0

vim /etc/sysconfig/network-scripts/ifcfg-bond0


TYPE=Bond

BOOTPROTO=none

NAME=bond0

DEVICE=bond0

ONBOOT=yes

BOOTPROTO=none

BONDING_MASTER=yes

ONBOOT=yes

#IPADDR=10.0.0.200

#NETMASK=255.255.255.0

#GATEWAY=10.0.0.254

BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2+3"

BRIDGE=br0

02.配置網橋

vim /etc/sysconfig/network-scripts/ifcfg-br0


DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=10.0.0.200

NETMASK=255.255.255.0

GATEWAY=10.0.0.254


03.從新加載網卡配置文件

ifdown bond0 && ifup bond0

ifdown br0 && ifup br0



###圖形化安裝KVM虛擬機(命令行見後面)


步驟: 須要一個iso鏡像,配置存儲池,掛載鏡像,標準安裝

注: 新建虛擬磁盤掛載後,若是mkfs很慢,須要修改libvirtd中的xml配置,設置 cache='none' 或者 cache='unsafe'


xml例子:

<driver name='qemu' type='qcow2' cache='none'/>


01.準備磁盤文件

#方法一:拷貝一個之後鏡像

mkdir -p /data/vm/storage1

scp vm-dc-temple-20.img 10.0.0.201                        #複製磁盤文件時,使用此磁盤文件的虛擬機要關閉


#方法二:本身製做鏡像(後面有詳細步驟)


認證帳戶密碼:webvirtmgr  KvmRocks

02.登陸WebVirtMgr儀表盤

http://vm.dc.iqdnet.cn/servers/

輸入帳戶密碼  user:root  Pass:KvmRocks


03.建立一個鏈接


user:Webvirtmgr    pass:KvmRocks


04.建立存儲池

05.建立新的網卡設備

網橋名稱:與物理機網橋設備的名稱要相同

06.建立虛擬機實例

07.VNC鏈接測試

IP是物理機br0的IP,端口是剛纔xml中查看的

(若是鏡像是克隆的,可能須要關閉其餘虛擬機,使其端口成爲5900)

最後能在物理機上ping通12.40這個實例便可!


安裝配置libvirtd 客戶端

01.安裝libvirt和KVM

可參考:https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh


如開了防火牆還需打開對libvirt端口的訪問權限:

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPT

02.設置開機自啓

chkconfig libvirtd on

03. 配置帳號密碼

saslpasswd2 -a libvirt webvirtmgr

password: KvmRocks

#sasl是一種用來擴充C/S模式驗證能力的機制。

04.驗證帳號密碼

virsh -c qemu+tcp://localhost/system nodeinfo

#帳號: webvirtmgr   密碼:上面設置的密碼KvmRocks

05.配置libvirtd

cat >>/etc/libvirt/libvirtd.conf<<EOF

max_clients = 1024

min_workers = 50

max_workers = 200

max_requests = 1000

max_client_requests = 200

EOF

06.重啓libvirtd

service libvirtd restart


若是有作好的磁盤鏡像文件,則無需建立虛擬機鏡像!!!!!

磁盤鏡像文件直接放到/data/vm/storage1目錄下,而後在webvirtdmgr上便可使用其建立新的虛擬機。

07.建立存儲池

       圖形方式操做在上面,命令方式操做在下面

08.建立網絡池

       圖形方式操做在上面

————————————————————————————————


建立KVM虛擬機鏡像:

第一部分:安裝kvm環境


01.安裝kvm依賴包

yum install qemu-kvm libvirt virt-install virt-manager bridge-utils

02.檢查是否支持kvm

lsmod | grep kvm

03.啓動libvirtd服務

systemctl enable libvirtd.service

systemctl start libvirtd.service



第二部分:搭建網橋


04.建立網橋

nmcli c add type bridge autoconnect yes con-name br0 ifname br0

05.建立網橋IP地址

nmcli c modify br0 ipv4.address 10.50.13.0/24 ipv4.method manual

06.建立網橋網關地址

nmcli c modify br0 ipv4.gateway 10.0.0.254

07.刪除eth0網卡配置

nmcli c delete em1

08.給eth0網卡指定網橋

nmcli c add type bridge-slave autoconnect yes con-name em1 ifname em1 master br0

09.重啓網絡服務

systemctl restart network


第三部分:建立kvm虛擬機


10.建立磁盤

ps:分爲ram和qcow2倆種磁盤格式

       qcow2的磁盤空間能夠動態增加

qemu-img create -f qcow2 /data/vm/m7-template.qcow2 100G

11. 查看磁盤信息

ps:雖然經過ls看磁盤爲20G,但實際空間爲0,因此說經過qemu-img建立的磁盤爲稀疏模式磁盤。

qemu-img info m7-template.qcow2

12.安裝虛擬機

圖形界面安裝:

virt-install --name m7-vm-ops-37 --vcpus1 --ram 4096 --disk /data/vm/m7-template.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=/iso/CentOS-7-x86_64-DVD-1611.iso

ps:--location 後面也能夠指定遠程鏡像,--os-variant 後面寫成rhel7(不要寫centos7,不識別)


安裝完後,能夠經過vnc端口鏈接並配置(vnc端口在xml文件中)

-------------------------------------------------------------------------------

命令行界面安裝:

virt-install --name  m7-vm-ops-37 --ram 512 --vcpus 2 --disk path=/data/vm/m7-template.img,size=10 --os-type linux --os-variant rhel7 --graphics none --console pty,target_type=serial --location=/data/CentOS-7-x86_64-DVD-1503-01.iso --extra-args 'console=ttyS0,115200n8 serial'

從1開始配置,時區,密碼,磁盤選1......

安裝完後的磁盤文件可用做模板,在圖形界面(webvirtmgr)可使用其建立新的虛擬機。

虛擬機克隆:

方法一:

virt-clone -o m7-vm-ops-37 -n m7-vm-test-38 -f /data/vm/storage1/m7-vm-test-38.qcow2

ps:-f 指定新的磁盤文件  -o 指定被克隆虛擬機  -n 新的虛擬機


方法二:

拷貝磁盤文件和xml文件,修改裏面關鍵點便可


虛擬機快照:

virsh snapshot-create

經常使用命令:

#宿主機和虛擬機切換

退出虛擬機:crtl+]

進入虛擬機:virsh console centos71

#開啓虛擬機

virsh start centos71


#關閉虛擬機

virsh shutdown centos71           

#鏈接虛擬機

virsh console centos71

#強制關閉虛擬機

virsh destroy centos71     


#編輯這個虛擬機文件.xml

virsh edit centos71

#刪除虛擬機包括配置

virsh undefine centos71

#查看全部kvm虛擬機

virsh list --all

#進入vrish環境

virsh

#磁盤掛載(在vrish環境下使用)

attach-disk m7-vm-ops-37 /data/vm/m7-template.qcow2 vdb

#查看下有沒有vdb

fdisk -l


brctl show                                   #查看網橋

brctl delbr br0                             #刪除網橋

brctl delif br0 vnet0                    #刪除網橋接口


建立存儲池:


手動建立文件:

/var/libvirt/storage/m7-vm-ops-37.xml:


<pool type='dir'>

  <name>m7-vm-ops-37</name>                    #存儲池名稱

  <capacity>0</capacity>

  <allocation>0</allocation>                             #最大容量

  <available>0</available>                                #可見容量

  <source></source>

  <target>

   <path>/var/libvirt/storage</path>

   <permissions>

      <mode>0700</mode>

      <owner>-1</owner>

      <group>-1</group>

   </permissions>

  </target>

</pool>


----------------------------如下可做爲參考---------------------------------


vim /etc/libvirt/storage/storage1.xml

<pool type='dir'>

  <name>storge1</name>

  <uuid>4aa56c0c-a23e-6569-7ef5-0584e3bd6a8a</uuid>       #複製時刪除此標籤

  <capacity unit='bytes'>0</capacity>

  <allocation unit='bytes'>0</allocation>

  <available unit='bytes'>0</available>

  <source>

  </source>

  <target>

    <path>/data/vm/storage1</path>

    <permissions>

      <mode>0755</mode>

      <owner>-1</owner>

      <group>-1</group>

    </permissions>

  </target>

</pool>

經常使用命令:


#查看存儲值

virsh pool-list

#定義存儲值

virsh pool-define /var/libvirt/storage/linux43.xml

#查看存儲值

virsh pool-list --all

#開啓存儲值

virsh pool-start linux43

#自動啓動

virsh pool-autostart linux43

#查看存儲值

virsh pool-list


#掛載磁盤

virsh deattach-disk cirros vdb

補充:

#virsh console vm-ops

卡死鏈接不上執行下面命令後reboot


在虛擬機中執行:

grubby --update-kernel=ALL --args="console=ttyS0"



錯誤總結:

1.報錯與網絡有關;提示什麼NetworkManager


nmcli device status

systemctl stop NetworkManager

systemctl start NetworkManager

# nmcli c add type bridge autoconnect yes con-name br0 ifname br0

brctl show        #檢查vnet0是否存在

br0             eth0

                  vnet0

相關文章
相關標籤/搜索