江城決的小站
KVM安裝
所有KVM為橋接模式
centos安裝KVM
由于公司gitlab備份均為VM主機,都在同一臺宿主機上,一旦宿主機出故障,所有gitlab備份將會受影響。找前臺申請了一臺PC機,I5 16G,但是硬盤只有128G,所以只能保存一天的備份,所以備份監控很重要。為了不造成資源浪費,而且公司有新舊兩套gitlab,而且兩臺gitlab的dock和gitlab的版本不同,所以需要在不同環境上進行部署。于是準備在這臺PC機搭建KVM供兩套gitlab備份使用。
方法一:
1.安裝準備
查看硬件是否支持虛擬化
egrep '(vmx|svm)' /proc/cpuinfo
注意:要有vmx或svm的標識才行。vmx標識intel,svm代表AMD。
2.安裝KVM
由于linux內核已經將KVM收錄了,在安裝系統時已經加入了KVM,我們只需要在命令行模式下啟用KVM即可
啟用KVM模塊:
modprobe kvm
lsmod |grep kvm
3.安裝KVM所需組件
yum install -y virt-* libvirt bridge-utils qemu-img qemu-kvm
安裝完成后啟動libvirtd服務:
service libvirtd start
查看是否安裝正確:
使用網橋管理命令查看:
brctl show
?.NETworkManager服務關閉,開機啟動也關閉:
chkconfig NetworkManager off
service NetworkManager stop
然后在創建橋接設備及關聯網卡到橋接設備上:注意:如果無法橋接成功可能是沒有安裝橋接工具(yum install bridge-utils)
virsh iface-bridge enp2s0 br0
注釋:enp2s0為本地IP網卡
brctl show 注:查看橋接設備
方法二:
yum install -y qemu-kvm libvirt-client virt-insatall virt-manager virt-viewer bridge-utils
yum install libvirt virt-install
yum install -y qemu-kvm libvirt-client virt-insatall virt-manager virt-viewer bridge-utils libvirt
配置KVM的網橋模式
[root@kevin ~]# cd /etc/sysconfig/network-scripts/
[root@openstack network-scripts]# cp ifcfg-eno1 ifcfg-br0
[root@openstack network-scripts]# cat ifcfg-br0
TYPE="Bridge" //這一行修改為Bridge
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0" //修改設備名稱為br0
#UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0" //這一行注釋
DEVICE="br0" //修改設備為br0
ONBOOT="yes"
IPADDR="192.168.10.210"
PREFIX="24"
GATEWAY="192.168.10.1"
DNS1="8.8.8.8"
[root@openstack network-scripts]# cat ifcfg-eno1
TYPE="Ethernet"
BRIDGE=br0 //添加這一行
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eno1"
#UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"
DEVICE="eno1"
ONBOOT="yes"
#IPADDR="192.168.10.210" //注釋掉這幾行
#PREFIX="24"
#GATEWAY="192.168.10.1"
#DNS1="8.8.8.8"
重啟網卡服務
[root@openstack network-scripts]# systemctl restart network
如果vncserver不是啟動的 :1
rm -rf /tmp/.Xn-lock
KVM新建虛擬機
先創建一臺模板機,做好虛擬化后其他VM直接進行克隆創建。
kvm虛擬機設置開機自啟動
方法 1、在kvm圖形化管理工具里面設置,讓KVM虛擬機隨著宿主機一起啟動。
方法 2、把KVM虛擬機的XML配置文件做一個軟連接到/etc/libvirt/qemu/autostart/目錄下。
ln -sv /etc/libvirt/qemu/rh8-vm1.xml /etc/libvirt/qemu/autostart/
方法 3、通過命令virsh設置開機啟動
virsh autostart rh8-vm1 #設置虛擬機開機自動啟動
virsh autostart --disable rh8-vm1 #設置取消虛擬機自動啟動
給kvm中的虛擬機磁盤擴容
一、鏡像擴容
在宿主機進行操作:
qemu-img info gitlab43-backup.qcow2
qemu-img resize gitlab43-backup.qcow2 +60G
重啟虛擬機
virsh shutdown gitlab43-backup
virsh start gitlab43-backup
二、虛擬機磁盤擴容
進入該虛擬機,使用命令 fdisk -l 查看磁盤信息
新建一個分區:fdisk /dev/vda
輸入 n (add a new partition,添加一個分區) 然后 p (primary ,主分區) 最后 w 保存退出。
創建完成后可以看到已經多了一個vda3分區:
將分區格式改成 8e (即lvm格式)
重啟虛擬機!
pvcreate /dev/vda3 創建物理卷
vgcreate amfslvm2 /dev/sda3 創建卷組
查看卷組:vgscan
合并卷組:vgmerge CentOS amfslvm2
查看卷組是否合并:pvdisplay
執行:lvresize -L +60G /dev/mApper/centos-root 給這個路徑添加磁盤容
xfs_growfs /dev/mapper/centos-root識別分區大小
命令行模式使用KVM
1 創建卷
qemu-img create -f qcow2 template.qcow2 100G
qemu-img create -f qcow2 centos7.6-template.qcow2 100G
這樣就創建了一個100G的動態擴展的qcow2格式的磁盤(這里的100G只是磁盤的最大值,沒有被寫入數據前只有不到200k大小)
查看卷信息可以用下面的命令,disk size才是其實際占用的宿主機磁盤大小
2 創建虛擬機
準備鏡像文件:
2.1 命令行創建虛擬機
virt-install --name centos7.6-template --ram=4096 --vcpus=2 --location=/opt/CentOS-7-x86_64-Minimal-1810.iso --disk path=/opt/centos7.6-template.qcow2,size=100 --network bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
命令說明:
--name 指定虛擬機的名稱
--memory 指定分配給虛擬機的內存資源大小
maxmemory 指定可調節的最大內存資源大小,因為KVM支持熱調整虛擬機的資源
--vcpus 指定分配給虛擬機的CPU核心數量
maxvcpus 指定可調節的最大CPU核心數量
--os-type 指定虛擬機安裝的操作系統類型
--os-variant 指定系統的發行版本
--location 指定ISO鏡像文件所在的路徑,支持使用網絡資源路徑,也就是說可以使用URL
--disk path 指定虛擬硬盤所存放的路徑及名稱,size 則是指定該硬盤的可用大小,單位是G
--bridge 指定使用哪一個橋接網卡,也就是說使用橋接的網絡模式
--graphics 指定是否開啟圖形
--console 定義終端的屬性,target_type 則是定義終端的類型
--extra-args 定義終端額外的參數
2設置時區
設置內網固定IP地址:
全部配置完成后,輸入"b"開始安裝
2.2 使用XML安裝
centos //虛擬機名稱
1024 //虛擬機最大內存上線
1024 //虛擬機當前內存
2 //cpu數量
hvm
destroy
reboot>restart
destroy
/usr/libexec/qemu-kvm //這個位置一般不動,,這是你的kvm安裝位置
//qcow2鏡像盤位置
//iso文件
2.3 虛擬機網絡設置
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=7d02dc3b-876d-4d2e-93a1-01716b5eb694
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.174
PREFIX=24
GATEWAY=10.0.0.1
DNS1=114.114.114.114
3 KVM相關命令
查看所有虛擬機(包含已停止狀態)
virsh list --all
開機
virsh start kvm_name
關機
virsh shutdown kvm_name
強制關機
virsh destroy kvm_name
開機自動開機
virsh autostart kvm_name
刪除虛擬機
virsh undefine kvm_name
暫停,掛起虛擬機
virsh suspend kvm_name
暫停狀態還原
virsh resume kvm_name
設置虛擬機開機自動啟動
virsh autostart
設置虛擬機開機取消自動啟動
virsh autostart --disable
4 將home分區磁盤轉移到根目錄
安裝完后發現磁盤空間有46G劃分給home了,需要全部轉移到/
以root用戶直接登陸(這是為了解決/home目錄被占用的情況,也可以使用其它方式終止/home被占用,不過這樣最直接)
卸載/home
umount /home
刪除/home所在的lv邏輯卷
lvremove /dev/mapper/centos_centos7-home
vgdisplay //查看卷組可用空間
擴展/root所在的lv
lvextend -L +45G /dev/mapper/centos_centos7-root
擴展/root文件系統
xfs_growfs /dev/mapper/centos_centos7-root
安裝完成后對服務器進行優化
5 克隆虛擬機
查看虛擬機
virsh list --all
查看虛擬機配置文件
ll /etc/libvirt/qemu
查看虛擬機磁盤文件
virsh shutdown centos7.6-template
開始克隆虛擬機
virt-clone -o centos7.6-template -n showdoc-kvm2 -f /opt/showdoc.qcow2
選項:
-o:原虛擬機名
-n:新生成的虛擬機名
-f:新生成的虛擬機的磁盤文件的路徑
virsh start showdoc-kvm2
進入虛擬機
virsh console showdoc-kvm2
復制磁盤文件和配置文件克隆
cp template.qcow2 showdoc.qcow2