• 架构师第四周作业


    第四周

    一、安装配置kvm虚拟机,并创建虚拟机。

    1、开启宿主机的CPU虚拟化功能
    编辑虚拟机设置--处理器--勾选 虚拟化Intel VT-x/EPT 或AMD-V/RVI(V).
    
    2、验证是否开启虚拟化支持
    [root@KVM ~]#grep  -Em 1 "vmx|svm" /proc/cpuinfo
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid movdiri movdir64b avx512_vp2intersect md_clear flush_l1d arch_capabilities
    
    3、安装KVM工具包并设置服务开机自启
    [root@KVM ~]#dnf install -y qemu-kvm libvirt virt-manager virt-install virt-viewer
    [root@KVM ~]#systemctl start --now libvirtd
    [root@KVM ~]#systemctl status libvirtd
    ● libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enab>
       Active: active (running) (thawing) since Mon 2022-04-11 11:57:42 CST; 16s ago
         Docs: man:libvirtd(8)
               https://libvirt.org
     Main PID: 2215 (libvirtd)
        Tasks: 19 (limit: 32768)
       Memory: 42.3M
       CGroup: /system.slice/libvirtd.service
               ├─1371 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>
               ├─1372 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>
               └─2215 /usr/sbin/libvirtd --timeout 120
    
    Apr 11 11:57:42 KVM systemd[1]: Starting Virtualization daemon...
    Apr 11 11:57:42 KVM systemd[1]: Started Virtualization daemon.
    Apr 11 11:57:42 KVM dnsmasq[1371]: read /etc/hosts - 2 addresses
    Apr 11 11:57:42 KVM dnsmasq[1371]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 ad>
    Apr 11 11:57:42 KVM dnsmasq-dhcp[1371]: read /var/lib/libvirt/dnsmasq/default.hostsfile
    
    4、准备安装系统的iso相关文件
    [root@KVM ~]#mkdir -pv /data/isos
    mkdir: created directory '/data'
    mkdir: created directory '/data/isos'
    [root@KVM ~]#cd /data/isos/
    [root@KVM isos]#ls
    CentOS-8.3.2011-x86_64-dvd1.iso
    
    5、创建虚拟机从光盘启动并利用kickstart自动安装系统
    准备yum仓库和kickstart环境
    [root@KVM ~]#yum install -y httpd
    [root@KVM ~]#systemctl enable --now httpd
    [root@KVM ~]#mkdir -pv /var/www/html/centos8/os/x86_64
    [root@KVM ~]#mount /dev/sr0  /var/www/html/centos8/os/x86_64/
    [root@KVM ~]#cat /var/www/html/ks/centos8.cfg
    ignoredisk --only-use=sda
    

    zerombr
    text
    reboot
    clearpart --all --initlabel
    selinux --disabled
    firewall --disabled
    url --url=http://10.0.0.150/centos8/os/x86_64/
    keyboard --vckeymap=us --xlayouts='us'
    lang en_US.UTF-8
    bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
    network --bootproto=dhcp --device=eth0 --ipv6=auto --activate
    network --hostname=centos8.tan.org
    rootpw --iscrypted $6$j9YhzDUnQVnxaAk8$qv7rkMcPAEbV5yvwsP666DXWYadd3jYjkA9fpxAo9qYotjGGBUclCGoP1TRvgHBpqgc5n0RypMsPTQnVDcpO01
    firstboot --enable
    skipx
    services --disabled="chronyd"
    timezone Asia/Shanghai --isUtc --nontp
    user --name=tan --password=6oUfb/02CWfLb5l8f$sgEZeR7c7DpqfpmFDH6huSmDbW1XQNR4qKl2EPns.gOXqlnAIgv9pTogtFVaDtEpMOC.SWXKYqxfVtd9MCwxb1 --iscrypted --gecos="tan"
    autopart --type=lvm
    %packages
    @^minimal-environment
    kexec-tools
    %end
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    %end
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end
    %post
    useradd tanl
    echo 123456 | passwd --stdin tanl &> /dev/null
    %end
    #利用virt-install的两项选项实现kickstart安装
    #创建磁盘文件
    [root@KVM ~]#qemu-img create -f qcow2 /var/lib/libvirt/images/centos8-vm1.qcow2 20G
    Formatting '/var/lib/libvirt/images/centos8-vm1.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
    #创建虚拟机
    [root@KVM ~]#virt-install --virt-type kvm --name centos8-vm1 --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/centos8-vm1.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --location=/data/isos/CentOS-8.3.2011-x86_64-dvd1.iso --extra-args="ks=http://10.0.0.150/ks/centos8.cfg"

    #验证宿主机进程
    [root@KVM ~]#ps aux|grep qemu-kvm
    qemu        3581  189  8.3 3185700 1369156 ?     Sl   12:30  10:50 /usr/libexec/qemu-kvm -name guest=centos8-vm1,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-1-centos8-vm1/master-key.aes -machine pc-i440fx-rhel7.6.0,accel=kvm,usb=off,dump-guest-core=off -cpu Cooperlake,ss=on,hypervisor=on,tsc-adjust=on,avx512ifma=on,sha-ni=on,avx512vbmi=on,umip=on,avx512vbmi2=on,gfni=on,vaes=on,vpclmulqdq=on,avx512bitalg=on,avx512-vpopcntdq=on,md-clear=on,xsaves=on,ibpb=on,amd-ssbd=on,hle=off,rtm=off,avx512-bf16=off,taa-no=off -m 2048 -overcommit mem-lock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 0ee96344-b772-4472-9ebe-b99a4416759f -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=36,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -kernel /var/lib/libvirt/boot/virtinst-_0_vb3ya-vmlinuz -initrd /var/lib/libvirt/boot/virtinst-jou8dx9f-initrd.img -append ks=http://10.0.0.150/ks/centos8.cfg -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -blockdev {"driver":"file","filename":"/var/lib/libvirt/images/centos8-vm1.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2","file":"libvirt-2-storage","backing":null} -device ide-hd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=1 -blockdev {"driver":"file","filename":"/data/isos/CentOS-8.3.2011-x86_64-dvd1.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"} -device ide-cd,bus=ide.0,unit=1,drive=libvirt-1-format,id=ide0-0-1 -netdev tap,fd=39,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:00:53:db:58,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 0.0.0.0:0 -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
    root        3791  0.0  0.0  12112  1084 pts/2    S+   12:36   0:00 grep --color=auto qemu-kvm
    
    #可以修改VNC端口的范围,默认5900-65535
    [root@KVM ~]#ss -tnl
    State      Recv-Q     Send-Q          Local Address:Port            Peer Address:Port
    LISTEN     0          128                   0.0.0.0:111                  0.0.0.0:*
    LISTEN     0          32              192.168.122.1:53                   0.0.0.0:*
    LISTEN     0          128                   0.0.0.0:22                   0.0.0.0:*
    LISTEN     0          5                   127.0.0.1:631                  0.0.0.0:*
    LISTEN     0          100                 127.0.0.1:25                   0.0.0.0:*
    LISTEN     0          128                 127.0.0.1:6010                 0.0.0.0:*
    LISTEN     0          128                 127.0.0.1:6011                 0.0.0.0:*
    LISTEN     0          128                   0.0.0.0:39327                0.0.0.0:*
    LISTEN     0          1                     0.0.0.0:5900                 0.0.0.0:*
    
    [root@KVM ~]#grep remote_display_port /etc/libvirt/qemu.conf
    #remote_display_port_min = 5900
    #remote_display_port_max = 65535
    

    二、实现将虚拟机在vmware esxi主机之间跨主机迁移。

    1、修改光盘配置,防止迁移中出现问题。
    右键单机虚拟机-->编辑设置-->虚拟机硬件-->CD/DVD驱动器1--移除设备
    
    2、每个ESXi上配置vMotion专用网络,配置同网段地址,可以和esxi地址不同网段
    主机--配置--虚拟交换机--添加网络,或者直接点源ESXi主机右键添加网络,选择连接类型--VMkernel网络适配器,选择目标设备--选择现有标准交换机--vSwitch0,端口属性--勾选 vMotion,ipv4设置--使用静态ipv4设置--配置ip地址和子网掩码--完成。
    
    3、执行虚拟机迁移。
    在VMware ESXi主机中,选择要迁移的目标虚拟机,选中后右键单机,然后选择迁移。选择迁移类型--更改计算资源和存储,选择目标主机--另一台主机--兼容性检查成功,选择目标主机存储--datastore1-兼容性检查成功,选择网络,选择vMotion优先级--安排优先级高的vMotion(建议),迁移完成。
    
    4、验证迁移后的虚拟机网络通信是否正常。
  • 相关阅读:
    Java之lambda表达式
    修改IntelliJ IDEA的java编译版本
    no route to host解决方案、Failed to start LSB: Bring up/down networking的问题解决方案
    spark转换集合为RDD
    spark编写word count
    nexus
    spark 源码安装
    spark shell
    maven
    git
  • 原文地址:https://www.cnblogs.com/tanll/p/16129511.html
Copyright © 2020-2023  润新知