centos安装kvm_centos+kvm和centos + vmbox - CSDN
  • virsh define /etc/libvirt/qemu/centos7.xml Linux服务器两块独立的网卡最好不要配置同一网段的IP地址,不然有时会有些Bug。 virsh edit name 可以更改虚拟机配置 如果虚拟机需要使用双网卡,virsh edit新增一.....

    需要注意的地方:

    !!!如果修改了虚拟机XML配置,需要停止虚拟机,然后使用以下命令重新读取XML配置!!!:

    virsh define /etc/libvirt/qemu/centos7.xml

    Linux服务器两块独立的网卡最好不要配置同一网段的IP地址,不然有时会有些Bug。

    virsh edit name 可以更改虚拟机配置

    如果虚拟机需要使用双网卡,virsh edit新增一块网卡的配置,并且将新增的网卡挂载到宿主机另一块网卡上即可。挂载在同一块上也行

     

    新增一个网卡:

    virsh attach-interface cent_xu --type bridge --source br0
    virsh dumpxml cent_xu > /etc/libvirt/qemu/cent_xu.xml

    检测是否支持KVM

    KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

    cat /proc/cpuinfo | egrep 'vmx|svm'
    
    flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc

    关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

     

    安装 KVM 环境

    通过 yum 安装 kvm 基础包和管理工具

    # 安装 kvm 基础包
    # ------------------------
    yum -y install kvm
    
    # 安装 kvm 管理工具
    # ------------------------
    yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
    
    # qemu-kvm: KVM模块
    
    # pyhon-virtinst: 包含python模块和工具(virt-install,virt-clone和virt-image),
    # 用于安装和克隆虚拟机使用libvirt。 它完全支持paravirtulized客人和客人虚拟客人。 
    # 支持的虚拟机管理程序是Xen,qemu(QEMU)和kvm
    
    # libvirt: 虚拟管理模块
    # virt-manager: 图形界面管理虚拟机
    # libguestfs* : virt-cat等命令的支持软件包
    
    
    # 重启宿主机,以便加载 kvm 模块
    # ------------------------
    reboot
    
    # 查看KVM模块是否被正确加载
    # ------------------------
    lsmod | grep kvm
    
    kvm_intel             162153  0
    kvm                   525259  1 kvm_intel

    开启kvm服务,并且设置其开机自动启动

    systemctl start acpid.service
    systemctl enable acpid.service
    systemctl start libvirtd.service
    systemctl enable libvirtd.service

    查看状态操作结果,如Active: active (running),说明运行情况良好

    systemctl status libvirtd
    systemctl is-enabled libvirtd
    
    ● libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
       Active: active (running) since 二 2001-01-02 11:29:53 CST; 1h 41min ago
         Docs: man:libvirtd(8)
               http://libvirt.org

    安装KVM成功后会在宿主机上自动生成一个虚拟网桥,用来虚拟机和宿主机之间的通信

    下面来安装虚拟机:

     

    安装前要设置环境语言为英文LANG="en_US.UTF-8",如果是中文的话某些版本可能会报错。CentOS 7 在这里修改 /etc/locale.conf

    kvm创建虚拟机,特别注意.iso镜像文件一定放到/home 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。

    注:下列两条命令都是在黑窗中进行系统配置然后安装

    virt-install --virt-type=kvm --name=centos88 --vcpus=2 --memory=4096 --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso --disk path=/home/vms/centos88.qcow2,size=40,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force

     

    virt-install --virt-type=kvm --name=centos74_2  --vcpus=2 --memory=4096 --location=/home/ISO/CentOS-7-x86_64-Minimal-1708.iso --disk path=/home/vms/centos74_2.qcow2,size=40,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force

    提供另一种方式:在服务器上只完成虚拟机的配置信息和镜像的引导,系统的安装通过VNC远程登录系统进行

    virt-install --connect qemu:///system --name kali --memory=4096 --vcpus=2 --disk path=/home/vms/kali.qcow2,device=disk,format=qcow2,bus=virtio,cache=none,size=50 --cdrom /home/ISO/kali-linux-kde-amd64.iso --os-type=linux --network bridge=br0,model=virtio,model=e1000 --hvm --virt-type=kvm --noautoconsole --graphics vnc,listen=0.0.0.0,port=5901
    

    安装WindowsServer2008R2(硬盘格式为ide,即bus=ide)

    virt-install --connect qemu:///system --name windows --memory=4096 --vcpus=2 --disk path=/home/vms/windows.qcow2,device=disk,format=qcow2,bus=ide,cache=none,size=50 --cdrom /home/ISO/cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso --os-type=windows --network bridge=br0,model=virtio,model=e1000 --hvm --virt-type=kvm --noautoconsole --graphics vnc,listen=0.0.0.0,port=5902  
    

     

    KVM所在服务器显示如下:

     

    通过VNC远程登录虚拟机后完成系统安装

     

    命令行配置系统

     

    上面创建虚拟机命令最终需要你配置系统基础设置,带 [!] 基本都是要配置的,按照顺序往下配置,按对用的数字以此进行设置。

    Installation
    
     1) [x] Language settings                 2) [!] Timezone settings
            (English (United States))                (Timezone is not set.)
     3) [!] Installation source               4) [!] Software selection
            (Processing...)                          (Processing...)
     5) [!] Installation Destination          6) [x] Kdump
            (No disks selected)                      (Kdump is enabled)
     7) [ ] Network configuration             8) [!] Root password
            (Not connected)                          (Password is not set.)
     9) [!] User creation
            (No user will be created)
      Please make your choice from above ['q' to quit | 'b' to begin installation |
      'r' to refresh]:
    

    一步步配置下去即可

     

    连接虚拟机

    通过 virsh console <虚拟机名称> 命令来连接虚拟机

    # 查看虚拟机
    virsh list              # 查看在运行的虚拟机
    virsh list –all         # 查看所有虚拟机
    
     Id    Name                           State
    ----------------------------------------------------
     7     centos72                       running

    配置虚拟机网络,编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0

    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=IP   #配置成与网桥同一网段的IP地址
    PREFIX=24
    GATEWAY=GateWay_IP  #配置网关地址,用来连接外网
    DNS1=114.114.114.114  # 配置两个DNS服务器地址,用于域名解析
    DNS2=8.8.8.8    
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eth0
    UUID=adfa3b7d-bf60-47e6-8482-871dee686fb5
    DEVICE=eth0
    ONBOOT=yes

    配置物理机网络

    一般来说,服务器可能有多个网卡,选择一个网卡当做网桥来与虚拟机通信

    在/etc/sysconfig/network-scripts里新增一个文件:ifcfg-br0

    TYPE=Bridge
    BOOTPROTO=static
    NAME=br0
    DEVICE=br0
    GATEWAY=GateWay_IP  # 网关IP
    DNS1=114.114.114
    DNS2=8.8.8.8
    ONBOOT=yes
    IPADDR=IP  # 此处的IP其实是你宿主机上物理网卡,用来与虚拟机通信的网卡的IP
    PREFIX=24

    物理网卡配置:

    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eno1
    DEVICE=eno1
    ONBOOT=yes
    BRIDGE="br0"

    配置路由转发vi /etc/sysctl.conf

    # Controls IP packet forwarding
    net.ipv4.ip_forward = 0
    修改为
    # Controls IP packet forwarding
    net.ipv4.ip_forward = 1    允许内置路由

    Bridge模式配置

    Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络(也叫 物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。

    ┌─────────────────────────┐      ┌─────────────────┐
    │          HOST           │      │Virtual Machine 1│
    │ ┌──────┐      ┌───────┐ │      │    ┌──────┐     │
    │ │ br0  │──┬───│ vnet0 │─│─ ─ ─ │    │ br0  │     │
    │ └──────┘  │   └───────┘ │      │    └──────┘     │
    │     │     │             │      └─────────────────┘
    │     │     │   ┌───────┐ │      ┌─────────────────┐
    │ ┌──────┐  └───│ vnet1 │─│─     │Virtual Machine 2│
    │ │ eno0 │      └───────┘ │ │    │    ┌──────┐     │
    │ └──────┘                │  ─ ─ │    │ br0  │     │
    │ ┌──────┐                │      │    └──────┘     │
    │ │ eno1 │                │      └─────────────────┘
    │ └──────┘                │
    └─────────────────────────┘

    KVM一些常用命令:

    克隆虚拟机:将74克隆到xiang

    virt-clone -o centos74 -n cent_xiang -f /home/cent_xiang.qcow2

     

    • 列出所有的虚拟机

     

    virsh list --all
    • 显示虚拟机信息
    virsh dominfo kvm-1
    • 显示虚拟机内存和cpu的使用情况
    yum install virt-top -y
    virt-top
    • 显示虚拟机分区信息
    virt-df kvm-1
    • 关闭虚拟机(shutodwn)
    virsh shutdown kvm-1
    • 启动虚拟机
    virsh start kvm-1
    • 设置虚拟机(kvm-1)跟随系统自启
    virsh autostart kvm-1
    • 关闭虚拟及自启
    virsh autostart --disable kvm-1
    • 删除虚拟机
    virsh undefine kvm-1
    • 通过控制窗口登录虚拟机
    virsh console kvm-1

    给虚拟机添加硬盘

    添加硬盘(lvm卷)或者USB到虚拟机上

    virsh attach-disk kvm-1 /dev/sdb vbd --driver qemu --mode shareable
    • 使用完成之后可以卸载usb
    virsh detach-disk kvm vdb

    添加lvm卷,并挂载

    [root@sh-kvm-1 ~]# lvcreate -n kvm-1-data -L 50G vg_shkvm1
    [root@sh-kvm-1 ~]# virsh attach-disk kvm-1 /dev/vg_shkvm1/kvm-1-data vdb --driver qemu --mode shareable
    Disk attached successfully
    # 登录到kvm-1上查看lvm是否已经被挂载
    [root@sh-kvm-1 ~]# virsh console kvm-1 # 输入kvm-1的用户和密码
    [root@sh-kvm-1-1 ~]# fdisk -l # 查看硬盘挂载情况
    
    Disk /dev/vda: 21.5 GB, 21474836480 bytes
    16 heads, 63 sectors/track, 41610 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00058197
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *           3        1018      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/vda2            1018       41611    20458496   8e  Linux LVM
    Partition 2 does not end on cylinder boundary.
    
    Disk /dev/mapper/VolGroup-lv_root: 18.8 GB, 18798870528 bytes
    255 heads, 63 sectors/track, 2285 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/mapper/VolGroup-lv_swap: 2147 MB, 2147483648 bytes
    255 heads, 63 sectors/track, 261 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/vdb: 53.7 GB, 53687091200 bytes  # 新添加的硬盘
    16 heads, 63 sectors/track, 104025 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    • 格式化新添加的vdb,并添加到lvm组中
    # 对新添加的硬盘分区
    [root@sh-kvm-1-1 ~]# fdisk /dev/vdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0xf04b6807.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): m  # 查看帮助
    Command action
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition
       l   list known partition types
       m   print this menu
       n   add a new partition
       o   create a new empty DOS partition table
       p   print the partition table
       q   quit without saving changes
       s   create a new empty Sun disklabel
       t   change a partition's system id
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit
       x   extra functionality (experts only)
    Command (m for help): n  #添加一个分区
    Command action
       e   extended
       p   primary partition (1-4)
    p  #选择添加一个扩展分区
    Partition number (1-4):
    Value out of range.
    Partition number (1-4): 1
    First cylinder (1-104025, default 1):
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-104025, default 104025):
    Using default value 104025
    
    Command (m for help): t  #改变分区的格式
    Selected partition 1
    Hex code (type L to list codes): 8e  #改成lvm
    Changed system type of partition 1 to 8e (Linux LVM)
    
    Command (m for help): w  # 保存更改
    root@sh-kvm-1-1 ~]# mkfs.ext4 /dev/vdb1  # 格式化分区
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    3276800 inodes, 13107142 blocks
    655357 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    400 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424
    
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 28 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@sh-kvm-1-1 ~]# pvc reate /dev/vdb1   # 创建pv
    vdb   vdb1
    [root@sh-kvm-1-1 ~]# vgextend VolGroup /dev/vdb  # 扩展lvm vg
    vdb   vdb1
    [root@sh-kvm-1-1 ~]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree
      VolGroup   2   2   0 wz--n- 69.50g 50.00g
    # 从上面能看出,新添加的 已经加到lvm组中

    改变虚拟机的参数

    通过命令行更改创建之后虚拟机的内存,cpu等信息

    • 更改内存
    # 1. 查看虚拟机当前内存
    [root@sh-kvm-1 ~]# virsh dominfo kvm-1 | grep memory
    Max memory:     4194304 KiB
    Used memory:    4194304 KiB
    
    # 2、动态设置内存为512MB,内存减少
    virsh setmem kvm-1 524288
    # 注意单位必须是KB
    
    # 3、查看内存变化
    # virsh dominfo kvm-1 | grep memory
    Max memory: 14194304 KiB
    Used memory: 524288 kiB
    
    # 4、内存增加
    virsh shutdown kvm-1
    virsh edit kvm-1  # 直接更改memory
    virsh create /etc/libvirt/demu/kvm-1/xml
    # 之后操作1,2,3步骤增加内存
    • 更改CPU

    需要修改配置文件,因此需要停止虚拟机

    virsh shutdown kvm-1
    virsh edit kvm-1
    #  <vcpu>2</vcpu>  # 4 > 2
    virsh create /etc/libvirt/demu/kvm-1/xml
    • 硬盘扩容
    1. Create a 10-GB non-sparse file:
    # dd if=/dev/zero of=/vm-images/vm1-add.img bs=1M count=10240
    2. Shutdown the VM:
     # virsh shutdown vm1
    3. Add an extra entry for ‘disk’ in the VM's XML file in /etc/libvirt/qemu. You can look copy & paste
    the entry for your mail storage device and just change the target and address tags. For example:
     # virsh edit vm1
     <disk type='file' device='disk'>
     <driver name='qemu' type='raw' cache='none' io='threads'/>
     <source file='/vm-images/vm1.img'/>
     <target dev='vda' bus='virtio'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
    function='0x0'/>
     </disk>
     Add:
     <disk type='file' device='disk'>
     <driver name='qemu' type='raw' cache='none' io='threads'/>
     <source file='/vm-images/vm1-add.img'/>
     <target dev='vdb' bus='virtio'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
    function='0x0'/>
     </disk>
     # 这里建议使用上面的添加硬盘的方式添加

    删除虚拟机

    • 第一步,停掉虚拟机
    virsh shutdown kvm-1
    • 第二步
    virsh destroy kvm-1
    • 第三步
    virsh undefine kvm-1
    • 第四部
     rm /dev/vg_shkvm1/kvm-1  # 不建议删除硬盘

     

    更为详细的KVM内容见:http://blog.csdn.net/github_27924183/article/details/76914322?locationNum=5&fps=1

     

     

     

    展开全文
  • 检测是否支持KVM KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的...

    检测是否支持KVM

    KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

    cat /proc/cpuinfo | egrep 'vmx|svm' flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss h

     

    安装 kvm

    [root@cdh5node1 pengcheng]# yum -y install qemu-kvm libvirt virt-install bridge-utils

    如果要显示virtual machine manager的界面 , 还需要安装

    [root@cdh5node1 pengcheng]# yum install virt-manager

     

    # 确保模块已加载

     

    [root@kvm-centos7 ~]# lsmod | grep kvm kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm [root@kvm-centos7~]# systemctl start libvirtd [root@kvm-centos7~]# systemctl enable libvirtd

     

    创建桥接网卡 否则在创建虚拟机的时候无法选择桥接

    cd /etc/sysconfig/network-scripts/

     

    配置桥接网卡

    ifcfg-br0 桥接网卡配置在同一个目录中。

    TYPE=Bridge BOOTPROTO=static NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.120.1 PREFIX=24

    ifcfg-eno1 物理网卡指定桥接网卡BRIDGE="br0"

    TYPE=Ethernet BOOTPROTO=none NAME=eno1 DEVICE=eno1 ONBOOT=yes BRIDGE="br0"

     

    [root@cdh5node1 network-scripts]# cat ifcfg-br0

    TYPE=Bridge

    BOOTPROTO=static

    NAME=br0

    DEVICE=br0

    ONBOOT=yes

    IPADDR=10.18.218.17

    PREFIX=24

    GATEWAY=10.18.218.1

    DNS1=10.19.3.199

    上面这两行一定要加,否则没有网关

    [root@cdh5node1 network-scripts]# cat ifcfg-eno1

    TYPE=Ethernet

    BOOTPROTO=none

    NAME=eno1

    DEVICE=eno1

    ONBOOT=yes

    BRIDGE="br0"

     

     

    如果要创建NAT 网络模式,需要启动 virbr0 , 参考下面的文章,如何关闭和打开virbr0

    http://www.itread01.com/articles/1485383907.html

     

    关闭:

    virsh net-destroy default

    virsh net-undefine default

     

    打开:

    virsh net-define /usr/share/libvirt/networks/default.xml

    virsh net-start default

    virsh net-autostart default

     

     

    安装虚拟机

     

    参考 :

    https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%AF%A6%E8%A7%A3.md

     

    http://blog.csdn.net/wh211212/article/details/54141412

     

    展开全文
  • 基于 CentOS Linux release 7.2.1511 (Core) 的环境下命令行的方式安装KVM的详细过程。 https://github.com/jaywcjlove/handbook检测是否支持KVMKVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件...

    基于 CentOS Linux release 7.2.1511 (Core) 的环境下命令行的方式安装KVM的详细过程。 
    https://github.com/jaywcjlove/handbook

    检测是否支持KVM

    KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

    cat /proc/cpuinfo | egrep 'vmx|svm'
    
    flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc

    关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

    vi /etc/sysconfig/selinux

    安装 KVM 环境

    通过 yum 安装 kvm 基础包和管理工具

    # 安装 kvm 基础包
    # ------------------------
    yum -y install kvm
    
    # 安装 kvm 管理工具
    # ------------------------
    yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
    
    # qemu-kvm: KVM模块
    
    # pyhon-virtinst: 包含python模块和工具(virt-install,virt-clone和virt-image),
    # 用于安装和克隆虚拟机使用libvirt。 它完全支持paravirtulized客人和客人虚拟客人。 
    # 支持的虚拟机管理程序是Xen,qemu(QEMU)和kvm
    
    # libvirt: 虚拟管理模块
    # virt-manager: 图形界面管理虚拟机
    # libguestfs* : virt-cat等命令的支持软件包
    
    
    # 重启宿主机,以便加载 kvm 模块
    # ------------------------
    reboot
    
    # 查看KVM模块是否被正确加载
    # ------------------------
    lsmod | grep kvm
    
    kvm_intel             162153  0
    kvm                   525259  1 kvm_intel

    开启kvm服务,并且设置其开机自动启动

    systemctl start acpid.service
    systemctl enable acpid.service
    systemctl start libvirtd.service
    systemctl enable libvirtd.service

    查看状态操作结果,如Active: active (running),说明运行情况良好

    systemctl status libvirtd
    systemctl is-enabled libvirtd
    
    ● libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
       Active: active (running) since 二 2001-01-02 11:29:53 CST; 1h 41min ago
         Docs: man:libvirtd(8)
               http://libvirt.org

    安装虚拟机

    安装前要设置环境语言为英文LANG="en_US.UTF-8",如果是中文的话某些版本可能会报错。CentOS 7 在这里修改 /etc/locale.conf

    kvm创建虚拟机,特别注意.iso镜像文件一定放到/home 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。

    virt-install \
    --virt-type=kvm \
    --name=centos78 \
    --vcpus=2 \
    --memory=4096 \
    --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso \
    --disk path=/home/vms/centos78.qcow2,size=40,format=qcow2 \
    --network bridge=br0 \
    --graphics none \
    --extra-args='console=ttyS0' \
    --force
    # ------------------------
    virt-install --virt-type=kvm --name=centos88 --vcpus=2 --memory=4096 --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso --disk path=/home/vms/centos88.qcow2,size=40,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force

    命令行配置系统

    上面创建虚拟机命令最终需要你配置系统基础设置,带 [!] 基本都是要配置的,按照顺序往下配置,按对用的数字以此进行设置。

    
    Installation
    
     1) [x] Language settings                 2) [!] Timezone settings
            (English (United States))                (Timezone is not set.)
     3) [!] Installation source               4) [!] Software selection
            (Processing...)                          (Processing...)
     5) [!] Installation Destination          6) [x] Kdump
            (No disks selected)                      (Kdump is enabled)
     7) [ ] Network configuration             8) [!] Root password
            (Not connected)                          (Password is not set.)
     9) [!] User creation
            (No user will be created)
      Please make your choice from above ['q' to quit | 'b' to begin installation |
      'r' to refresh]:

    2) Timezone settings 时区设置选择 5) Asia亚洲,再选择城市 62) Shanghai上海

    Available regions
     1)  Africa                 6)  Atlantic              10)  Pacific
     2)  America                7)  Australia             11)  US
     3)  Antarctica             8)  Europe                12)  Etc
     4)  Arctic                 9)  Indian
     5)  Asia
    Please select the timezone.
    Use numbers or type names directly [b to region list, q to quit]: 5
    --------------------
    
     8)  Baghdad               35)  Kathmandu             61)  Seoul
     9)  Bahrain               36)  Khandyga              62)  Shanghai
    10)  Baku                  37)  Kolkata               63)  Singapore
    26)  Hong_Kong             53)  Pontianak
    27)  Hovd
    Please select the timezone.
    Use numbers or type names directly [b to region list, q to quit]: 62

    3) Installation source 安装源输入数字2

    Choose an installation source type.
     1)  CD/DVD
     2)  local ISO file
     3)  Network
      Please make your choice from above ['q' to quit | 'c' to continue |
      'r' to refresh]: 2

    4) Software selection 软件选择

    Base environment
    Software selection
    
    Base environment
    
     1)  [x] Minimal Install
      Please make your choice from above ['q' to quit | 'c' to continue |
      'r' to refresh]:

    5) Installation Destination 安装目的地

    Installation Destination
    
    [x] 1) : 40 GiB (vda)
    
    1 disk selected; 40 GiB capacity; 40 GiB free ...
    
      Please make your choice from above ['q' to quit | 'c' to continue |
      'r' to refresh]: c
    
    
    Autopartitioning Options 自动分区选项
    
    [ ] 1) Replace Existing Linux system(s) 替换现有的Linux系统
    
    [x] 2) Use All Space 使用所有空间
    
    [ ] 3) Use Free Space 使用可用空间
    
    ================================================================================
    Partition Scheme Options 分区方案选项
    
    [ ] 1) Standard Partition 标准分区
    
    [ ] 2) Btrfs Btrfs
    
    [x] 3) LVM LVM(逻辑卷管理)
    
    [ ] 4) LVM Thin Provisioning 精简配置
    
    Select a partition scheme configuration.
    
      Please make your choice from above ['q' to quit | 'c' to continue |
      'r' to refresh]: c
    



    此处也可以只设置 Root 密码Installation Destination 安装目的地其它进入系统设置比如时区设置如下:

    echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile

    连接虚拟机

    通过 virsh console <虚拟机名称> 命令来连接虚拟机

    # 查看虚拟机
    virsh list              # 查看在运行的虚拟机
    virsh list –all         # 查看所有虚拟机
    
     Id    Name                           State
    ----------------------------------------------------
     7     centos72                       running

    连接虚拟机

    virsh console centos72

    配置虚拟机网络,编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0

    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=192.168.120.200
    PREFIX=24
    GATEWAY=192.168.120.1
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eth0
    UUID=adfa3b7d-bf60-47e6-8482-871dee686fb5
    DEVICE=eth0
    ONBOOT=yes


    添加DNS配置,也可以放到ifcfg-eth0中,DNS不是随便设置的,你可以通过hostdignslookup命令查询DNS,如果这些工具不存在可以通过yum install bind-utils -y来安装一下。

    # 如果没有在网络配置添加DNS可以这种方式添加DNS
    echo "nameserver 192.168.188.1" > /etc/resolv.conf

    激活网卡

    ifup eth0 # 激活网卡

    配置物理机网络

    目前我只有一个固定IP,通过配置eno2,网桥当做路由器,虚拟机共享物理机进出网络。物理机网络配置,网络进出走eno2 编辑vi /etc/sysconfig/network-scripts/ifcfg-eno2

    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eno2
    UUID=f66c303e-994a-43cf-bd91-bb897dc2088d
    DEVICE=eno2
    ONBOOT=yes
    
    IPADDR=<这里固定IP配置的地方>  # 设置IP地址
    PREFIX=24                   # 设置子网掩码
    GATEWAY=<这里设置网关>        # 设置网关
    DNS1=<这里设置DNS>           # DNS

    ifcfg-br0 桥接网卡配置在同一个目录中。

    TYPE=Bridge
    BOOTPROTO=static
    NAME=br0
    DEVICE=br0
    ONBOOT=yes
    IPADDR=192.168.120.1
    PREFIX=24

    ifcfg-eno1 物理网卡指定桥接网卡BRIDGE="br0"

    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eno1
    DEVICE=eno1
    ONBOOT=yes
    BRIDGE="br0"

    配置路由转发vi /etc/sysctl.conf

    # Controls IP packet forwarding
    net.ipv4.ip_forward = 0
    修改为
    # Controls IP packet forwarding
    net.ipv4.ip_forward = 1    允许内置路由

    再执行 sysctl -p 使其生效,编辑vi /etc/rc.d/rc.local 添加下面命令,达到开机重启配置网络转发规则。

    # 启动网络转发规则
    iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.7

    通过iptables命令来设置转发规则,源SNAT规则,源网络地址转换,SNAT就是重写包的源IP地址。

    # 数据包进行 源NAT(SNAT),系统先路由——>再过滤(FORWARD)——>最后才进行POSTROUTING SNAT地址翻译
    # -t<表>:指定要操纵的表;
    # -A:向规则链中添加条目;
    # -s:指定要匹配的数据包源ip地址;
    # -j<目标>:指定要跳转的目标;
    # -j SNAT:源网络地址转换,SNAT就是重写包的源IP地址
    # --to-source ipaddr[-ipaddr][:port-port] 
    #   它可以指定单个新的源IP地址,IP地址的包含范围,以及可选的端口范围(仅当规则还指定-p tcp或-p udp时才有效)。 
    #   如果没有指定端口范围,则低于512的源端口将映射到512以下的其他端口:512和1023之间的端口将映射到低于1024的端口,
    #   其他端口将被映射到1024或更高。 在可能的情况下,不会发生港口更改。
    #   在内核高达2.6.10,您可以添加几个 - 源选项。 
    #   对于这些内核,如果通过地址范围或多个源选项指定多个源地址,则会在这些地址之间进行简单的循环(循环中循环)。 
    #   后来的内核(> = 2.6.11-rc1)不再具有NAT到多个范围的能力。
    iptables -t nat -A POSTROUTING -s 192.168.120.0/24 -j SNAT --to-source <固定IP>
    # cat /etc/sysconfig/iptables

    配置宿主机网络

    1. KVM 虚拟机是基于 NAT 的网络配置;
    2. 只有同一宿主机的虚拟键之间可以互相访问,跨宿主机是不能访问;
    3. 虚拟机需要和宿主机配置成桥接模式,以便虚拟机可以在局域网内可见;

    Bridge模式配置

    Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络(也叫 物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。

    ┌─────────────────────────┐      ┌─────────────────┐
    │          HOST           │      │Virtual Machine 1│
    │ ┌──────┐      ┌───────┐ │      │    ┌──────┐     │
    │ │ br0  │──┬───│ vnet0 │─│─ ─ ─ │    │ br0  │     │
    │ └──────┘  │   └───────┘ │      │    └──────┘     │
    │     │     │             │      └─────────────────┘
    │     │     │   ┌───────┐ │      ┌─────────────────┐
    │ ┌──────┐  └───│ vnet1 │─│─     │Virtual Machine 2│
    │ │ eno0 │      └───────┘ │ │    │    ┌──────┐     │
    │ └──────┘                │  ─ ─ │    │ br0  │     │
    │ ┌──────┐                │      │    └──────┘     │
    │ │ eno1 │                │      └─────────────────┘
    │ └──────┘                │
    └─────────────────────────┘

    通过ip 命令查看宿主机配置文件的名字

    ip addr
    
    6: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
        link/ether 38:63:bb:44:cf:6c brd ff:ff:ff:ff:ff:ff
        inet 192.168.188.132/24 brd 192.168.188.255 scope global dynamic eno1
           valid_lft 2822sec preferred_lft 2822sec
        inet6 fe80::3a63:bbff:fe44:cf6c/64 scope link
           valid_lft forever preferred_lft forever

    可以看到上面eno1是有获取到ip地址的,相对应的文件在/etc/sysconfig/network-scripts/目录中,ifcfg-eno1 宿主机的物理网卡配置文件

    # cat ifcfg-eno1
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eno1
    DEVICE=eno1
    UUID=242b3d4d-37a5-4f46-b072-55554c185ecf
    ONBOOT=yes
    
    BRIDGE="br0" # 指定桥接网卡的名称

    ifcfg-br0 桥接网卡配置在同一个目录中。

    # cat ifcfg-br0
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=br0
    UUID=242b3d4d-37a5-4f46-b072-55554c185ecf
    DEVICE=br0
    ONBOOT=yes
    TYPE=bridge  # 将制定为桥接类型
    IPADDR=192.168.188.133  # 设置IP地址
    PREFIX=24               # 设置子网掩码
    GATEWAY=192.168.188.1   # 设置网关

    配置好之后,通过systemctl 命令重启网卡。

    ifup eno1 # 激活网卡
    ifup br0 # 激活桥接网卡
    # 两种重启网络的方法
    systemctl restart network.service
    service network restart
    
    # 校验桥接接口
    brctl show
    
    bridge name bridge id   STP enabled interfaces
    br0   8000.3863bb44cf6c no    eno1
                  vnet0
    virbr0    8000.525400193f0f yes   virbr0-nic

    NAT模式

    NAT(Network Address Translation网络地址翻译),NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

    virsh net-list --all
    
     Name                 State      Autostart     Persistent
    ----------------------------------------------------------
     default              active     no            no

    default是宿主机安装虚拟机支持模块的时候自动安装的。

    ip a l
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens1f0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 2c:44:fd:8c:43:44 brd ff:ff:ff:ff:ff:ff
    3: ens1f1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 2c:44:fd:8c:43:45 brd ff:ff:ff:ff:ff:ff
    4: ens1f2: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 2c:44:fd:8c:43:46 brd ff:ff:ff:ff:ff:ff
    5: ens1f3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 2c:44:fd:8c:43:47 brd ff:ff:ff:ff:ff:ff
    6: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
        link/ether 38:63:bb:44:cf:6c brd ff:ff:ff:ff:ff:ff
    7: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 38:63:bb:44:cf:6d brd ff:ff:ff:ff:ff:ff
    8: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 38:63:bb:44:cf:6e brd ff:ff:ff:ff:ff:ff
    9: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 38:63:bb:44:cf:6f brd ff:ff:ff:ff:ff:ff
    10: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
        link/ether 52:54:00:19:3f:0f brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
           valid_lft forever preferred_lft forever
    11: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
        link/ether 52:54:00:19:3f:0f brd ff:ff:ff:ff:ff:ff
    12: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        link/ether 38:63:bb:44:cf:6c brd ff:ff:ff:ff:ff:ff
        inet 192.168.188.132/24 brd 192.168.188.255 scope global dynamic br0
           valid_lft 3397sec preferred_lft 3397sec
        inet 192.168.188.133/24 brd 192.168.188.255 scope global secondary br0
           valid_lft forever preferred_lft forever
        inet6 fe80::3a63:bbff:fe44:cf6c/64 scope link
           valid_lft forever preferred_lft forever
    19: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
        link/ether fe:54:00:72:12:a8 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::fc54:ff:fe72:12a8/64 scope link
           valid_lft forever preferred_lft forever


    其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。几个虚拟机管理模块产生的接口关系如下图:

    ┌───────────────────────┐                      
    │         HOST          │                      
    │ ┌──────┐              │   ┌─────────────────┐
    │ │ br0  │─┬──────┐     │   │Virtual Machine 1│
    │ └──────┘ │      │     │   │   ┌──────┐      │
    │     │    │  ┌───────┐ │ ─ │   │ br0  │      │
    │     │    │  │ vnet0 │─│┘  │   └──────┘      │
    │ ┌──────┐ │  └───────┘ │   └─────────────────┘
    │ │virbr0│ │  ┌───────┐ │   ┌─────────────────┐
    │ │ -nic │ └──│ vnet1 │─│┐  │Virtual Machine 2│
    │ └──────┘    └───────┘ │   │                 │
    │ ┌──────┐              │└ ─│   ┌──────┐      │
    │ │ eno0 │              │   │   │ br0  │      │
    │ └──────┘              │   │   └──────┘      │
    │ ┌──────┐              │   └─────────────────┘
    │ │ eno1 │              │
    │ └──────┘              │
    └───────────────────────┘

    从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。

    virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:

    brctl show
    # 输出结果
    # ---------------------
    # bridge name bridge id   STP enabled interfaces
    # br0   8000.3863bb44cf6c no    eno1
    #               vnet0
    # virbr0    8000.525400193f0f yes   virbr0-nic
    
    ip route
    # default via 192.168.188.1 dev br0
    # 169.254.0.0/16 dev br0  scope link  metric 1012
    # 192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1
    # 192.168.188.0/24 dev br0  proto kernel  scope link  src 192.168.188.132

    同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:

    iptables -t nat -L -nv
    iptables -t filter -L -nv

    如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。

    virsh net-define /usr/share/libvirt/networks/default.xml

    此命令定义一个虚拟网络,default.xml的内容:

    <network>
      <name>default</name>
      <bridge name="virbr0" />
      <forward/>
      <ip address="192.168.122.1" netmask="255.255.255.0">
        <dhcp>
          <range start="192.168.122.2" end="192.168.122.254" />
        </dhcp>
      </ip>
    </network>

    也可以修改xml,创建自己的虚拟网络。

    标记为自动启动:

    virsh net-autostart default
    # Network default marked as autostarted

    启动网络:

    virsh net-start default
    # Network default started

    网络启动后可以用命令brctl show 查看和验证。

    修改vi /etc/sysctl.conf中参数,允许ip转发,CentOS7是在vi /usr/lib/sysctl.d/00-system.conf 这里面修改

    net.ipv4.ip_forward=1

    通过 sysctl -p 查看修改结果

    自定义NAT网络

    创建名为management的NAT网络,vi /usr/share/libvirt/networks/management.xml

    <network>
      <name>management</name>
      <bridge name="virbr1"/>
      <forward/>
      <ip address="192.168.123.1" netmask="255.255.255.0">
        <dhcp>
          <range start="192.168.123.2" end="192.168.123.254"/>
        </dhcp>
      </ip>
    </network>

    启用新建的NAT网络

    virsh net-define /usr/share/libvirt/networks/management.xml
    virsh net-start management
    virsh net-autostart management

    验证

    brctl show
    # bridge name bridge id   STP enabled interfaces
    # br0   8000.3863bb44cf6c no    eno1
    #               vnet0
    # virbr0    8000.525400193f0f yes   virbr0-nic
    # virbr1    8000.52540027f0ba yes   virbr1-nic
    
    virsh net-list --all
    #  Name                 State      Autostart     Persistent
    # ----------------------------------------------------------
    #  default              active     no            no
    #  management           active     yes           yes

    退出虚拟机

    exit # 退出系统到登录界面
    
    Ctrl+5 # 从虚拟机登录页面,退出到宿主机命令行页面
    Ctrl+] # 或者下面

    修改虚拟机配置信息

    直接通过vim命令修改

    vim  /etc/libvirt/qemu/centos72.xml

    通过virsh命令修改

    virsh edit centos72

    克隆虚拟机

    # 暂停原始虚拟机
    virsh shutdown centos72
    virt-clone -o centos72 -n centos.112 -f /home/vms/centos.112.qcow2 -m 00:00:00:00:00:01
    virt-clone -o centos88 -n centos.112 --file /home/vms/centos.112.qcow2 --nonsparse

    virt-clone 参数介绍

    • --version 查看版本。
    • -h,--help 查看帮助信息。
    • --connect=URI 连接到虚拟机管理程序 libvirt 的URI。
    • -o 原始虚拟机名称 原始虚拟机名称,必须为关闭或者暂停状态。
    • -n 新虚拟机名称 –name 新虚拟机名称。
    • --auto-clone 从原来的虚拟机配置自动生成克隆名称和存储路径。
    • -u NEW_UUID, --uuid=NEW_UUID 克隆虚拟机的新的UUID,默认值是一个随机生成的UUID。
    • -m NEW_MAC, --mac=NEW_MAC 设置一个新的mac地址,默认为随机生成 MAC。
    • -f NEW_DISKFILE, --file=NEW_DISKFILE 为新客户机使用新的磁盘镜像文件地址。
    • --force-copy=TARGET 强制复制设备。
    • --nonsparse 不使用稀疏文件复制磁盘映像。

    通过镜像创建虚拟机

    创建虚拟机镜像文件

    # 复制第一次安装的干净系统镜像,作为基础镜像文件,
    # 后面创建虚拟机使用这个基础镜像
    cp /home/vms/centos.88.qcow2 /home/vms/centos7.base.qcow2
    
    # 使用基础镜像文件,创建新的虚拟机镜像
    cp /home/vms/centos7.base.qcow2 /home/vms/centos7.113.qcow2

    创建虚拟机配置文件

    # 复制第一次安装的干净系统镜像,作为基础配置文件。
    virsh dumpxml centos.88 > /home/vms/centos7.base.xml
    
    # 使用基础虚拟机镜像配置文件,创建新的虚拟机配置文件
    cp /home/vms/centos7.base.xml /home/vms/centos7.113.xml
    
    # 编辑新虚拟机配置文件
    vi /home/vms/centos7.113.xml

    主要是修改虚拟机文件名,UUID,镜像地址和网卡地址,其中 UUID 在 Linux 下可以使用 uuidgen 命令生成

    <domain type='kvm'>
      <name>centos7.113</name>
      <uuid>1e86167a-33a9-4ce8-929e-58013fbf9122</uuid>
      <devices>
        <disk type='file' device='disk'>
          <source file='/home/vms/centos7.113.img'/>
        </disk>
        <interface type='bridge'>
          <mac address='00:00:00:00:00:04'/>
        </interface>    
        </devices>
    </domain>
    virsh define /home/vms/centos7.113.xml
    # Domain centos.113 defined from /home/vms/centos7.113.xml

    挂载磁盘

    创建磁盘

    mkdir /home/vms

    创建镜像文件

    sudo qemu-img create /home/vms/centos78.img

    创建普通的qcow2格式镜像文件

    # 创建 guest 所需的磁盘
    # create 表示创建,-f qcow2 表示创建一个格式为 qcow2 的磁盘, 
    # /home/vms/centos78.qcow2 表示创建的磁盘名称及磁盘文件,40G 表示该磁盘可用大小。
    qemu-img create -f qcow2 -o preallocation=metadata /home/vms/centos78.qcow2 40G

    常用命令说明

    virt-install

    常用参数说明

    –name指定虚拟机名称
    –memory分配内存大小。
    –vcpus分配CPU核心数,最大与实体机CPU核心数相同
    –disk指定虚拟机镜像,size指定分配大小单位为G。
    –network网络类型,此处用的是默认,一般用的应该是bridge桥接。
    –accelerate加速
    –cdrom指定安装镜像iso
    –vnc启用VNC远程管理,一般安装系统都要启用。
    –vncport指定VNC监控端口,默认端口为5900,端口不能重复。
    –vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
    –os-type=linux,windows
    –os-variant=rhel6
    
    --name      指定虚拟机名称
    --ram       虚拟机内存大小,以 MB 为单位
    --vcpus     分配CPU核心数,最大与实体机CPU核心数相同
    –-vnc       启用VNC远程管理,一般安装系统都要启用。
    –-vncport   指定VNC监控端口,默认端口为5900,端口不能重复。
    –-vnclisten  指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
    --network   虚拟机网络配置
      # 其中子选项,bridge=br0 指定桥接网卡的名称。
    
    –os-type=linux,windows
    –os-variant=rhel7.2
    
    --disk 指定虚拟机的磁盘存储位置
      # size,初始磁盘大小,以 GB 为单位。
    
    --location 指定安装介质路径,如光盘镜像的文件路径。
    --graphics 图形化显示配置
      # 全新安装虚拟机过程中可能会有很多交互操作,比如设置语言,初始化 root 密码等等。
      # graphics 选项的作用就是配置图形化的交互方式,可以使用 vnc(一种远程桌面软件)进行链接。
      # 我们这列使用命令行的方式安装,所以这里要设置为 none,但要通过 --extra-args 选项指定终端信息,
      # 这样才能将安装过程中的交互信息输出到当前控制台。
    --extra-args 根据不同的安装方式设置不同的额外选项

    virsh

    基础命令

    virsh list                 # 查看在运行的虚拟机
    virsh dumpxml vm-name      # 查看kvm虚拟机配置文件
    virsh start vm-name        # 启动kvm虚拟机
    virsh shutdown vm-name     # 正常关机
    
    virsh destroy vm-name      # 非正常关机,强制关闭虚拟机(相当于物理机直接拔掉电源)
    virsh undefine vm-name     # 删除vm的配置文件
    
    ls  /etc/libvirt/qemu
    # 查看删除结果,Centos-6.6的配置文件被删除,但磁盘文件不会被删除
    
    virsh define file-name.xml # 根据配置文件定义虚拟机
    virsh suspend vm-name      # 挂起,终止
    virsh resumed vm-name      # 恢复被挂起的虚拟机
    virsh autostart vm-name    # 开机自启动vm
    virsh console <虚拟机名称>   # 连接虚拟机

    错误解决

    console test
    Connected to domain test
    Escape character is ^]

    如果出现上面字符串使用 CTRL+Shift+5 CTRL+Shift+]

    安装虚拟机命令

    virt-install \
    --virt-type=kvm \
    --name=centos7 \
    --vcpus=2 \
    --memory=4096 \
    --location=/home/CentOS-7-x86_64-Minimal-1804.iso \
    --disk path=/home/centos7,size=40,format=qcow2 \
    --graphics none \
    --extra-args='console=ttyS0' \
    --force

    展开全文
  • 这里写自定义目录标题一.KVM简介二.KVM虚拟化平台构建功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    一.KVM简介

    KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。

    KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。

    关于KVM:

    1).KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
    2).是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
    3).它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
    4).KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
    5).KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
    6).在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。

    KVM 与 vbox的区别:
    vbox 是由 qemu 改写而成,包含大量qemu 代码。

    1).可以使用于"不支持"虚拟化技术的cpu。
    2).值得说的一点:vbox 在图形方面比较好,能进行2D 3D加速;但cpu控制不理想(估计是因为图形支持的缘故);操作上有独立的图形界面,易于上手。

    kvm 是linux内核包含的东西,使用qemu作为上层管理(命令行)。

    1).要求cpu 必须支持虚拟化。
    2).性能:作为服务器很好,可是图形能力十分的差。即使放电影,图像也是像刷油漆一样,一层一层的。
    3).cpu使用率控制很好。
    4).控制上比较简洁,功能比较丰富:比如使用“无敌功能”所有更改指向内存,你的镜像永远保持干净。“母镜像”功能让你拥有n个独立快照点。还有很多参数。另外,kvm作为内核级的虚拟机,刚开始发展关注的公司比较多——但是还没有达到商业应用的水平。

    总体而言:在支持虚拟化的情况下,vbox 和 kvm 的性能差不多,主要是面向对象不同:kvm适用于服务器,vbox适用于桌面应用

    qemu 全称Quick Emulator。是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。kqemu是该软件的加速软件。kvm并不需要qemu进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由kvm驱动。所以,大家不要把概念弄错了,盲目的安装qemu和kqemu。

    KVM内存管理:
    KVM继承了Linux系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对NUMA的支持能够让虚拟机高效访问更大的内存空间等。
    KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技术可以支持更新的内存虚拟功能,这可以降低CPU的占用率,并提供较好的吞吐量。
    此外,KVM还借助于KSM(Kernel Same-pageMerging)这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很高的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。

    二.KVM虚拟化平台构建

    1.安装准备
    查看硬件是否支持虚拟化。命令:

    [root@localhost ~]# egrep ‘(vmx|svm)’ /proc/cpuinfo

    在这里插入图片描述
    注意:要有 vmx 或 svm 的标识才行。vmx标识intel,svm代表AMD。

    2.安装KVM
    由于Linux内核已经将KVM收录了,在安装系统时已经加入了KVM,我们只需要在命令行模式下启用KVM即可:
    启用KVM模块:

    [root@localhost ~]# modprobe kvm
    [root@localhost ~]# lsmod |grep kvm

    在这里插入图片描述

    3.KVM虚拟机创建和管理所依赖的组件介绍

    KVM虚拟机的创建依赖qemu-kvm:
    虽然kvm的技术已经相当成熟而且可以对很多东西进行隔离,但是在某些方面还是无法虚拟出真实的机器。比如对网卡的虚拟,那这个时候就需要另外的技术来做补充,而qemu-kvm则是这样一种技术。它补充了kvm技术的不足,而且在性能上对kvm进行了优化。

    我们还可以使用virt-manager,virt-viewer来管理虚拟机;

    我们在创建和管理KVM虚拟机时还需要libvirt这个重要的组件:

    它是一系列提供出来的库函数,用以其他技术调用,来管理机器上的虚拟机。包括各种虚拟机技术,kvm、xen与lxc等,都可以调用libvirt提供的api对虚拟机进行管理。有这么多的虚拟机技术,它为何能提供这么多的管理功能那。是因为它的设计理念,它是面向驱动的架构设计。对任何一种虚拟机技术都开发设计相对于该技术的驱动。这样不同虚拟机技术就可以使用不同驱动,而且相互直接不会影响,方便扩展。而且libvirt提供了多种语言的编程接口,可以直接通过编程,调用libvirt提供的对外接口实现对虚拟机的操作。如今流行的云计算中的IaaS是与该库联系相当密切的。通过下图可以看出它的架构设计思想。

    4.安装KVM所需组件

    [root@localhost ~]# yum install -y virt-* libvirt bridge-utils qemu-img qemu-kvm

    安装完成后启动libvirtd服务:

    [root@localhost ~]# service libvirtd start

    查看是否安装正确
    在这里插入图片描述
    使用网桥管理命令查看:
    在这里插入图片描述
    像VMware Workstation中我们需要创建物理桥接设备,可以使用virsh创建桥设备关联网卡到桥接设备上:
    需要将NetworkManager服务关闭,开机启动也关闭:

    [root@localhost ~]# chkconfig NetworkManager off
    [root@localhost ~]# service NetworkManager stop

    然后在创建桥接设备及关联网卡到桥接设备上:

    [root@localhost ~]# virsh iface-bridge enp61s0f0 br0

    在这里插入图片描述
    查看桥接设备:

    在这里插入图片描述
    列表中多了br0,说明桥接成功。

    三.创建虚拟机并安装CentOS7

    将服务成功启动后,我们就可以使用KVM安装虚拟机了,首先需要准备一个操作系统的镜像文件,我这里用的是CentOS7的镜像文件:

    [root@localhost ~]# mkdir kvm_data
    [root@localhost ~]# cd /tmp/
    [root@localhost tmp]# ls |grep Cent
    CentOS-7-x86_64-DVD-1708.iso
    [root@localhost tmp]#

    使用命令行安装这个CentOS7镜像文件:

    创建一个名为gurobi的1个8核cpu,内存容量为512M的,硬盘容量为1TB
    [root@localhost ~]# virt-install --name=gurobi --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1708.iso --disk path=/kvm_data/gurobi.img,size=10 --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 定义终端额外的参数

    附录:virt-install参数说明

    usage: virt-install --name NAME --memory MB STORAGE INSTALL [options]
    
    从指定安装源创建新虚拟机。
    
    optional arguments:
      -h, --help            show this help message and exit
      --version             show program's version number and exit
      --connect URI         通过 libvirt URI 连接到虚拟机管理程序
    
    通用选项:
      -n NAME, --name NAME  客户机实例名称
      --memory MEMORY       Configure guest memory allocation. Ex:
                            --memory 1024 (in MiB)
                            --memory 512,maxmemory=1024
                            --memory 512,maxmemory=1024,hotplugmemorymax=2048,hotplugmemoryslots=2
      --vcpus VCPUS         配置客户机虚拟 CPU(vcpu) 数量。例如:
                            --vcpus 5
                            --vcpus 5,maxcpus=10,cpuset=1-4,6,8
                            --vcpus sockets=2,cores=4,threads=2
      --cpu CPU             CPU model and features. Ex:
                            --cpu coreduo,+x2apic
                            --cpu host-passthrough
                            --cpu host
      --metadata METADATA   配置客户机元数据。例如:
                            --metadata name=foo,title="My pretty title",uuid=...
                            --metadata description="My nice long description"
    
    安装方法选项:
      --cdrom CDROM         光驱安装介质
      -l LOCATION, --location LOCATION
                            安装源 (例如:nfs:host:/path, http://host/path,
                            ftp://host/path)
      --pxe                 使用 PXE 协议从网络引导
      --import              在已有的磁盘镜像中构建客户机
      --livecd              将光驱介质视为 Live CD
      -x EXTRA_ARGS, --extra-args EXTRA_ARGS
                            将附加参数添加到由 --location
                            引导的内核中
      --initrd-inject INITRD_INJECT
                            添加指定文件到由 --location 指定的 initrd
                            根中
      --os-variant DISTRO_VARIANT
                            在客户机上安装的操作系统,例如:'fedor
                            a18'、'rhel6'、'winxp' 等。
      --boot BOOT           配置客户机引导设置。例如:
                            --boot hd,cdrom,menu=on
                            --boot init=/sbin/init (针对容器)
      --idmap IDMAP         为 LXC 容器启用用户名称空间。例如:
                            --idmap uid_start=0,uid_target=1000,uid_count=10
    
    设备选项:
      --disk DISK           指定存储的各种选项。例如:
                            --disk size=10 (在默认位置创建 10GiB 镜像)
                            --disk /my/existing/disk,cache=none
                            --disk device=cdrom,bus=scsi
                            --disk=?
      -w NETWORK, --network NETWORK
                            配置客户机网络接口。例如:
                            --network bridge=mybr0
                            --network network=my_libvirt_virtual_net
                            --network network=mynet,model=virtio,mac=00:11...
                            --network none
                            --network help
      --graphics GRAPHICS   配置客户机显示设置。例如:
                            --graphics vnc
                            --graphics spice,port=5901,tlsport=5902
                            --graphics none
                            --graphics vnc,password=foobar,port=5910,keymap=ja
      --controller CONTROLLER
                            配置客户机控制器设备。例如:
                            --controller type=usb,model=ich9-ehci1
      --input INPUT         配置客户机输入设备。例如:
                            --input tablet
                            --input keyboard,bus=usb
      --serial SERIAL       配置客户机串口设备
      --parallel PARALLEL   配置客户机并口设备
      --channel CHANNEL     配置客户机通信通道
      --console CONSOLE     配置文本控制台连接主机与客户机
      --hostdev HOSTDEV     配置物理 USB/PCI 等主机设备与客户机共享
      --filesystem FILESYSTEM
                            传递主机目录到客户机。例如:
                            --filesystem /my/source/dir,/dir/in/guest
                            --filesystem template_name,/,type=template
      --sound [SOUND]       配置客户机声音设备仿真
      --watchdog WATCHDOG   配置客户机 watchdog 设备
      --video VIDEO         配置客户机视频硬件。
      --smartcard SMARTCARD
                            配置客户机智能卡设备。例如:
                            --smartcard mode=passthrough
      --redirdev REDIRDEV   配置客户机重定向设备。例如:
                            --redirdev usb,type=tcp,server=192.168.1.1:4000
      --memballoon MEMBALLOON
                            配置客户机 memballoon 设备。例如:
                            --memballoon model=virtio
      --tpm TPM             配置客户机 TPM 设备。例如:
                            --tpm /dev/tpm
      --rng RNG             Configure a guest RNG device. Ex:
                            --rng /dev/urandom
      --panic PANIC         配置客户机 panic 设备。例如:
                            --panic default
      --memdev MEMDEV       Configure a guest memory device. Ex:
                            --memdev dimm,target_size=1024
    
    客户机配置选项:
      --security SECURITY   设置域安全驱动配置。
      --cputune CPUTUNE     Tune CPU parameters for the domain process.
      --numatune NUMATUNE   为域进程调整 NUMA 策略。
      --memtune MEMTUNE     为域进程调整内存策略。
      --blkiotune BLKIOTUNE
                            为域进程调整 blkio 策略。
      --memorybacking MEMORYBACKING
                            为域进程设置内存后备策略。例如:
                            --memorybacking hugepages=on
      --features FEATURES   设置域 <features> XML。例如:
                            --features acpi=off
                            --features apic=on,eoi=on
      --clock CLOCK         设置域 <clock> XML。例如:
                            --clock offset=localtime,rtc_tickpolicy=catchup
      --pm PM               配置 VM 电源管理功能
      --events EVENTS       配置 VM 生命周期管理策略
      --resource RESOURCE   配置 VM 资源分区(cgroups)
      --sysinfo SYSINFO     Configure SMBIOS System Information. Ex:
                            --sysinfo emulate
                            --sysinfo host
                            --sysinfo bios_vendor=Vendor_Inc.,bios_version=1.2.3-abc,...
                            --sysinfo system_manufacturer=System_Corp.,system_product=Computer,...
                            --sysinfo baseBoard_manufacturer=Baseboard_Corp.,baseBoard_product=Motherboard,...
      --qemu-commandline QEMU_COMMANDLINE
                            Pass arguments directly to the qemu emulator. Ex:
                            --qemu-commandline='-display gtk,gl=on'
                            --qemu-commandline env=DISPLAY=:0.1
    
    虚拟化平台选项:
      -v, --hvm             这个客户机应该是一个全虚拟化客户机
      -p, --paravirt        这个客户机应该是一个半虚拟化客户机
      --container           这个客户机应该是一个容器客户机
      --virt-type HV_TYPE   要使用的管理程序名称 (kvm, qemu, xen, ...)
      --arch ARCH           模拟 CPU 架构
      --machine MACHINE     机器类型为仿真类型
    
    其它选项:
      --autostart           主机启动时自动启动域。
      --transient           Create a transient domain.
      --wait WAIT           请等待数分钟以便完成安装。
      --noautoconsole       不要自动尝试连接到客户端控制台
      --noreboot            安装完成后不启动客户机。
      --print-xml [XMLONLY]
                            打印生成的 XML 域,而不是创建客户机。
      --dry-run             运行安装程序,但不创建设备或定义客户
                            机。
      --check CHECK         启用或禁用验证检查。例如:
                            --check path_in_use=off
                            --check all=off
      -q, --quiet           抑制非错误输出
      -d, --debug           输入故障排除信息 
    

    开始安装后,正常的情况下会进入到这样一个界面:
    在这里插入图片描述
    这是让你配置语言、时区、安装源、网络、密码等信息,就和我们在VMware里安装CentOS虚拟机是一样的,只不过这个是命令行形式,而VMware里是图形界面罢了。

    首先设置语言,按数字1,回车进入以下界面:
    在这里插入图片描述
    例如我要选Chinese就按数字68并回车即可,回车之后会让你选择是中文简体还是繁体,也是按下相应的数字并回车即可:
    在这里插入图片描述
    配置完成之后又会再次回到配置界面,设置时区:

    在这里插入图片描述
    在这里插入图片描述
    设置root密码:
    在这里插入图片描述
    开始安装系统:
    在这里插入图片描述
    一切顺利,安装成功!
    在这里插入图片描述
    这时我们是处于一个虚拟终端的,如果要退出来虚拟机,应该说是切出来,按Ctrl + ] 即可。
    切出虚拟机后,可以看到/kvm_data/目录下多了一个虚拟机的磁盘目录:
    在这里插入图片描述

    管理虚拟机的一些常用命令:

    [root@localhost ~]# virsh console xxx # 进入指定的虚拟机,进入的时候还需要按一下回车
    [root@localhost ~]# virsh start xxx # 启动虚拟机
    [root@localhost ~]# virsh shutdown xxx # 关闭虚拟机
    [root@localhost ~]# virsh destroy xxx # 强制停止虚拟机
    [root@localhost ~]# virsh undefine xxx # 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
    [root@localhost ~]# virsh autostart xxx # 设置宿主机开机时该虚拟机也开机
    [root@localhost ~]# virsh autostart --disable xxx # 解除开机启动
    [root@localhost ~]# virsh suspend xxx # 挂起虚拟机
    [root@localhost ~]# virsh resume xxx # 恢复挂起的虚拟机

    配置虚拟机里IP:

    [root@localhost ~]# virsh console study01
    Connected to domain study01
    Escape character is ^]

    [root@localhost ~]# ip addr # 此时还没有能联网的IP
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:65:d3:3f brd ff:ff:ff:ff:ff:ff
    [root@localhost ~]# dhclient eth0 # 获取IP地址
    [root@localhost ~]# ip addr # 此时可以看到已经有IP地址了
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:65:d3:3f brd ff:ff:ff:ff:ff:ff
    inet 192.168.77.140/24 brd 192.168.77.255 scope global dynamic eth0
    valid_lft 1793sec preferred_lft 1793sec
    inet6 fe80::5054:ff:fe65:d33f/64 scope link
    valid_lft forever preferred_lft forever
    [root@localhost ~]# yum install -y net-tools # 获取到IP能联网后安装网络管理工具
    [root@localhost ~]# ifconfig # 安装完之后就可以使用ifconfig命令了
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.77.140 netmask 255.255.255.0 broadcast 192.168.77.255
    inet6 fe80::5054:ff:fe65:d33f prefixlen 64 scopeid 0x20
    ether 52:54:00:65:d3:3f txqueuelen 1000 (Ethernet)
    RX packets 4404 bytes 13614102 (12.9 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 2480 bytes 139445 (136.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10
    loop txqueuelen 0 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@localhost ~]#
    [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# vi ifcfg-eth0 # 修改ONBOOT的值为yes
    ONBOOT=yes
    [root@localhost network-scripts]# systemctl restart network # 重启网卡服务

    以上就完成了一台虚拟机的搭建和配置工作。
    感谢:https://blog.51cto.com/zero01/2083896
    https://www.cnblogs.com/luckyall/p/6203008.html

    展开全文
  • CentOS安装KVM

    2017-10-01 08:44:55
    yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst #yum -y install qemu-kvm libvirt python-virtinst bridge-utils policycoreutils-python; mkd
  • 1. 查看系统版本 [root@openstack ~]# cat /etc/centos-release ...2. 首先验证CPU是否支持虚拟化,输入有vmx或svm就支持,支持虚拟化则就支持KVM [root@openstack ~]# cat /proc/cpuinfo | egrep 'vmx|svm' 3...
  • 服务器:联想system x 3650 M5 内存16G 安装系统为Centos 7.4版本 一、安装KVM依赖软件和相关包 1、yum -y installqemu-kvm.x86_64 yum -y installlibvirt-daemon-driver-qemu.x86_64 : QEMU driver plugin for ...
  • 目录 一 简述 二 虚拟化技术的概述 1 虚拟化技术概述 2 虚拟化技术的比较 三 Kvm虚拟化概述 1 Kvm虚拟化介绍 2 Kvm的架构 ...3 Kvm的特性 ...4 KVM 系统管理程序 ...2 系统安装 六 查看我们的硬件是...
  • 检测是否支持KVM KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的...
  • 使用KVM(基于内核的虚拟机)+ QEMU的虚拟化。...[root@kvm-centos7 ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils# 确保模块已加载[root@kvm-centos7 ~]# lsmod | grep kvm kvm_intel
  • 之前需要使用KVM环境,在网上查过很多相关资料...CentOS安装KVM环境 一、操作系统配置 1、修改内核模式为兼容内核启动  vi /boot/grub/grub.conf 2、关闭selinux,重启后生效  vi /etc/selinux/config 3、关闭
  • CentOS7安装KVM环境

    2020-05-09 10:37:14
    CentOS7安装KVM 部署前准备 物理机要在BIOS里开启CPU虚拟化 部署一套CentOS7操作系统环境,且机器可以正常访问互联网 查看cpu是否支持虚拟化 使用命令查验CPU是否支持虚拟化,提示vmx或者svm表示CPU支持虚拟化,如下...
  • Centos 7 KVM安装win10

    2019-08-21 20:12:10
    Centos 7 KVM安装win10 KVM架构: KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序...
  • CentOS安装KVM(新手向)概要一.配置SSH使其可传输图形窗口二.kvm服务器安装相关软件包三.测试效果四.远程管理主机为Windows的情况 概要 本文介绍如何在Centos安装基本的KVM相关软件包;配置SSH使其可传输窗口数据...
  • Centos7.7下安装配置kvm虚拟机 一、 主机信息 |IP|主机名|网络模式|用途| |192.168.66.142|Centos|物理机| |192.168.122.10-19|Vm01-vm10|NAT|虚拟机| 二、安装kvm (1) 确认kvm有 CPU 的支持(Intel VT 或 AMD SVM)...
  • ubuntu centos 安装kvm

    2017-11-30 17:11:41
    sudo apt-get install kvm qemu sudo apt-get install virtinst python-libvirt virt-viewer virt-manager启动LVM sudo virt-manager查看虚拟运行状态 virsh list -all $ virsh list –all Id 名称
  • 1、centos6的KVM虚拟化安装方法 宿主机的系统安装要求:最小化安装,并使用yum -y update升级至centos6.8。 #安装KVM相关的依赖包和工具包 yum -y groupinstall "Desktop" "X Window System" chinese-support...
  • centos7上kvm安装使用

    2017-08-16 15:17:59
    想在centos7上安装kvm,里面运行centos7,首先下载centos7的安装镜像,包括.iso、qcow2等多种,这里下载qcow2格式的。 一. 宿主机环境配置: 1. 查看CPU是否支持VT技术 cat /proc/cpuinfo | egrep ‘vmx|svm’ ...
  • CentOS 7 安装 QEMU + KVM

    2019-07-16 20:35:08
    CentOS 7 安装 QEMU + KVM 背景:VM15 + CentOS 7, Intel-CPU 1. 开启CPU的扩展虚拟化支持 虚拟机设置中选中CPU 的Intel-VT 选项 2. 检查 lscpu | grep Virtualization Re: Virtualization: VT-x 3. 更新 yum ...
  • CentOS7安装KVM虚拟化

    2019-04-24 14:08:09
    介绍 KVM是Kernel-based Virtual Machine的简写,KVM是一个全虚拟化的解决方案,能在一台物理机中虚拟出几台虚拟操作系统。可以在x86架构的计算机上实现虚拟化功能。...前期准备及安装KVM 检...
1 2 3 4 5 ... 20
收藏数 13,732
精华内容 5,492
关键字:

centos安装kvm