###安裝配置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