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