1. 程式人生 > >雙硬碟(系統盤和資料盤)建立第一臺kvm虛擬機器

雙硬碟(系統盤和資料盤)建立第一臺kvm虛擬機器

一,kvm虛擬機器磁碟規劃 磁碟A:60G,用於安裝作業系統,分割槽方法MBR,boot分割槽300M,swap分割槽2G,剩餘的空間全部作為根分割槽(/),磁碟為lvm+xfs。 磁碟B:200G,用於存放資料,分割槽方法GPT,建立一個分割槽,直接掛載到/data目錄。

二,宿主機和虛擬機器作業系統說明 guest OS發行版:CentOS Linux release 7.3.1611 (Core) guest OS核心版本:3.10.0-514.el7.x86_64

三,建立磁碟映像檔案(在宿主機上)
# qemu-img create -f qcow2 -o size=200G /data/kvm/imgs/template-centos7-3-1611_data.img # qemu-img create -f qcow2 -o size=60G /data/kvm/imgs/template-centos7-3-1611.img

四,建立虛擬機器(在宿主機上) # virt-install \ --connect qemu:///system \ --virt-type kvm \ --name "template" \ --metadata title="template1" \ --memory 2048,maxmemory=4096 \ --vcpus 4,maxvcpus=8 \ --disk path=/data/kvm/imgs/template-centos7-3-1611.img,bus=virtio,format=qcow2,size=100,sparse,cache=none \ --location=/data/kvm/os/CentOS-7-x86_64-DVD-1611.iso \ --network bridge=br0,model=virtio \ --os-type=linux \ --os-variant=rhel7 \ --graphics vnc \ --autostart \ --accelerate \ --noautoconsole \ --force
引數說明:
--name:必不可少,虛擬機器例項名稱,virsh可以通過虛擬機器例項的執行ID號及該名稱對例項程序操作; --metadata:title選項是虛擬機器例項的簡短描述資訊,可自行定義,通過virsh list --title進行檢視; --memeory:設定maxmemory,目的是後續可以對虛擬機器的記憶體進行熱擴容; --vcpus:設定maxvcpus,目的是後續可以對虛擬機器的VCPU數量進行熱擴容;

五,使用virt-manager+xmanager來圖形化介面安裝作業系統 1)在遠端宿主機上配置變數如下: # LANG=en_US.utf8 # export DISPLAY='192.168.13.105:0.0' 注意:這裡的ip地址換成你可以連線到遠端主機的實際的IP地址
2)在本地電腦安裝了xmamager,並且配置xshell如下,通過xshell連線的遠端宿主機: 3)啟動xmanager-passive

4)然後,在遠端宿主機上執行virt-manager命令,會在本地開啟圖形化管理介面來安裝作業系統 # virt-manager !!!提示:若本地窗口出現亂碼,則需要在遠端宿主機上執行yum -y install xorg-x11-font*這些字型包; 操作完上圖中的步驟2,則可以開啟虛擬機器的作業系統安裝介面,按照提示一步一步操作即可。
通過圖形介面視窗控制檯做下面的6操作:

六,配置虛擬機器的網路(在虛擬機器上) 1)網絡卡配置,這裡配置一個臨時地址使用,用於ssh連線過去方便複製貼上及檔案傳輸 # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak # vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=no PEERROUTES=no IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 #UUID=2030e1ef-3890-4f56-a3e6-47f9de376d58 DEVICE=eth0 ONBOOT=yes IPADDR=10.1.73.9 NETMASK=255.255.255.0 GATEWAY=10.1.73.1 NM_CONTROLLED=no 2)主機名配置 # hostnamectl set-hostname YOUR_HOSTNAME 3)DNS配置:/etc/hosts和/etc/resolv.conf(根據實際需要看是否要配置) 重啟network # systemctl restart network

七,給虛擬機器新增資料盤(在宿主機上) # virsh attach-disk --domain template --source /data/kvm/imgs/template-centos7-3-1611_data.img --target vdb --targetbus virtio --driver qemu --subdriver qcow2 --sourcetype file --cache none --persistent Disk attached successfully 注意: --source跟的img路徑必須是絕對路徑。 --target:這是在虛擬機器中顯示的磁碟裝置檔名稱,在確定之前務必先到虛擬機器中確認已有磁碟的裝置檔名稱。 --persistent:表示對執行的虛擬機器以及其配置檔案都會生效。 這裡到虛擬機器中使用fdisk -l檢視磁碟發現標誌的是214.7GB,原因是這裡的磁碟換算單位以1000為進位制;而我們使用qemu-img建立磁碟的時候換算單位是1024,故而由此差異;在下面建立邏輯卷的過程中,檢視的時候就是200G。

八,配置虛擬機器可以在宿主機上通過virsh console命令連線控制檯(在虛擬機器上): # grep -i "ttyS0" /etc/securetty || echo "ttyS0" >> /etc/securetty # vi /boot/grub2/grub.cfg linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/rootvg-rootlv ro crashkernel=auto rd.lvm.lv=rootvg/rootlv rhgb quiet LANG=zh_ CN.UTF-8 console=ttyS0 linux16 /vmlinuz-0-rescue-98a6cc2774a14f4fad9b048d99d54d37 root=/dev/mapper/rootvg-rootlv ro crashkernel=auto rd.lvm.lv=rootvg/rootlv rhgb quiet console=ttyS0 # reboot # virsh console template 連線成功

九,資料磁碟分割槽格式化掛載(在虛擬機器上): # mkdir /data # parted /dev/vdb GNU Parted 3.1 使用 /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) mkpart primary 0% 100% (parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 215GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標誌 1 1049kB 215GB 215GB primary (parted) set 1 lvm on (parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 215GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標誌 1 1049kB 215GB 215GB primary lvm (parted) quit 資訊: You may need to update /etc/fstab.
# cat /proc/partitions major minor #blocks name 252 16 209715200 vdb 252 17 209713152 vdb1
# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created. # vgcreate -s 4M datavg /dev/vdb1 Volume group "datavg" successfully created # vgdisplay # lvcreate -l 51199 -n datalv datavg Logical volume "datalv" created. # mkfs -t xfs /dev/datavg/datalv # mount -t xfs /dev/datavg/datalv /data # df -h # blkid # vi /etc/fstab 十,建立目錄結構(在虛擬機器上) # mkdir -pv /data/{src,scripts}

十一,上傳指令碼、模板和安裝包(在虛擬機器上) 指令碼放到/data/scripts目錄下。 安裝包、配置模板、CentOS-7-x86_64-DVD-1611.iso系統映象放到/data/src目錄下。

十二,系統初始化及伺服器安全檢查配置(在虛擬機器上) # sh -x /data/scripts/osInit_centos7.sh
十三,配置本地yum源(可選) 注意:務必確保有yum源可以正常使用。 # mkdir -pv /media/cdrom # mount -t iso9660 -o loop /data/src/CentOS-7-x86_64-DVD-1611.iso /media/cdrom # sed -i '$a\/data/src/CentOS-7-x86_64-DVD-1611.iso /media/cdrom iso9660 defaults,ro,loop 0 0' /etc/fstab # mount -a # cd /etc/yum.repos.d/ # for i in $(ls);do mv ./$i ./${i}.bak;done # cat > /etc/yum.repos.d/CentOS-Local.repo <<EOF [local] name=CentOS7.3.1611 baseurl=file:///media/cdrom enabled=1 gpgcheck=0 EOF # yum repolist
十四,ssh升級(在虛擬機器上) # sh -x /data/scripts/sshUpdate_centos7.sh

十五,安裝了zabbix_proxy和zabbix_agent(在虛擬機器上) 後面根據需要啟用即可; # sh -x /data/scripts/zabbix_proxy_and_agent_centos7.sh 後續根據需要手動配置proxy和agent配置檔案

十六,拷貝虛擬機器模板到指定目錄備用(在宿主機上) # virsh list --all --title # virsh shutdown template------這裡的template是kvm虛擬機器例項的Name。 # virsh list --all----確保虛擬機器已經關閉了。 # cp /etc/libvirt/qemu/template.xml /data/kvm/templates/template-centos7-3-1611.xml # mv /data/kvm/imgs/template-centos7-3-1611.img /data/kvm/templates/ # mv /data/kvm/imgs/template-centos7-3-1611_data.img /data/kvm/templates/ # virsh undefine template------徹底刪除模板虛擬機器例項
十七,克隆新的虛擬機器: # cd /data/scripts/ # sh -x /data/7sys_double.sh 根據提示輸入相應的資訊;