服务器安装KVM环境并安装虚拟机(centOS7)

avatar
作者
猴君
阅读量:0

一. 安装KVM环境

1. 检测是否支持KVM

        cat /proc/cpuinfo | egrep 'vmx|svm'

        返回结果中有vmx或svm,说明cpu是支持的

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

        vi /etc/sysconfig/selinux

3. 安装KVM环境
    yum -y install qemu-kvm libvirt virt-install bridge-utils 
4. 重启服务器,加载kvm模块

        reboot

5. 查看kvm模块是否被正确加载
   lsmod | grep kvm     kvm_intel             162153  0    kvm                   525259  1 kvm_intel
6. 开启kvm服务,并且设置其开机自动启动

        systemctl start libvirtd
        systemctl enable libvirtd

7. 查看状态操作结果,如:Active: active(running),则运行状态良好

        systemctl status libvirtd
        systemctl is-enabled libvirtd

        ibvirtd.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

二. 安装虚拟机(centos7系统)

        安装前要设置环境语言为英文LANG="en_US.UTF-8",如果是中文的话某些版本可能会报错。CentOS 7 在这里修改 /etc/locale.conf。kvm创建虚拟机,特别注意.iso镜像文件一定放到/home 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。 

1. 修改宿主机网络模式为桥模式       
  • 创建一个br0接口的配置文件

        cp /etc/sysconfig/network-scripts/ifcf-ens1f0  /etc/sysconfig/network-scripts/ifcf-br0

  • 原来的ens1f0配置修改

        vi  /etc/sysconfig/network-scripts/ifcf-ens1f0

        # Generated by parse-kickstart

        #IPADDR= 172.29.32.41

        #GATEWAY=172.29.32.254

        #NETMASK=255.255.255.0

        #DNS1=192.168.58.110---地址全部不配置

        BOOTPROTO=static

        DEVICE=ens1f0

        UUID=50880575-8439-4418-81aa-79e68a52eb1d       

        ONBOOT=yes

        IPV6INIT=yes

        BRIDGE=br0     ----注意需要添加这一行,即通过br0上网

  • br0接口配置文件修改

        vi  /etc/sysconfig/network-scripts/ifcf-br0

        DEVICE=br0

        TYPE=Bridge--修改成bridge模式

        BOOTPROTO=statio

        ONBOOT=yes

        IPADDR=172.29.32.41

        NETMASK=255.255.255.0

        GATEWAY=172,29,32,254

        DNS1=192.168.58.110        

  • 重启网络

        service network restart

2. 安装虚拟机(此处命令较长注意参数)
virt-install --virt-type=kvm --name=centosname --vcpus=2 --memory=4096  --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso  --disk path=/home/vm/centosname.qcow2,size=40,format=qcow2 --network bridge=br0  --graphics none --extra-args='console=ttyS0' --force
  • 参数说明
  –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 图形化显示配置
3. 命令行配置系统(带!的都要配置)
        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]:

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

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

        3)Software selection 软件选择

        4)Installation Destination 安装目的地

        5)密码设置(root password)
4. 配置虚拟机网络

        vi  /etc/sysconfig/network-scripts/ens3

        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

5. 激活网卡

        ifup eth0 

6. 重启网络服务

        service  network  restart

三. kvm常用操作

1. virsh命令
virsh list --all           # 查看所有运行和没有运行的虚拟机 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 <虚拟机名称>   # 连接虚拟机 
3. 管理命令

        virsh start centos72     # 虚拟机开启(启动):
        virsh reboot centos72    # 虚拟机重新启动
        virsh shutdown centos72  # 虚拟机关机
        virsh destroy centos72   # 强制关机(强制断电)
        virsh suspend centos72   # 暂停(挂起)KVM 虚拟机
        virsh resume centos72    # 恢复被挂起的 KVM 虚拟机
        virsh undefine centos72  # 该方法只删除配置文件,磁盘文件未删除
        virsh autostart centos72 # 随物理机启动而启动(开机启动)
        virsh autostart --disable centos72 # 取消标记为自动开始(取消开机启动)

3. 克隆虚拟机

        # 暂停原始虚拟机
        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

  --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 不使用稀疏文件复制磁盘映像。

4. 安装后的磁盘分区扩展

按以上方案安装后,多余的磁盘空间会被分配到/home节点,默认的磁盘空间大小为50G,可以通过df -h查看磁盘空间。

  • 首先卸载 /home
umount /dev/mapper/centos-home 
  • 删除home的lv
lvremove /dev/mapper/centos-home  Do you really want to remove active logical volume centos/home? [y/n]: y   Logical volume "home" successfully removed  
  • 扩展根目录
lvextend -L +445G /dev/mapper/centos-root    Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to   495.00 GiB (126720 extents).   Logical volume centos/root successfully resized.  
  • 扩展根目录文件系统
xfs_growfs /dev/mapper/centos-root  meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks          =                       sectsz=512   attr=2, projid32bit=1          =                       crc=1        finobt=0 spinodes=0 data     =                       bsize=4096   blocks=13107200, imaxpct=25          =                       sunit=0      swidth=0 blks naming   =version 2              bsize=4096   ascii-ci=0 ftype=1 log      =internal               bsize=4096   blocks=6400, version=2          =                       sectsz=512   sunit=0 blks, lazy-count=1 realtime =none                   extsz=4096   blocks=0, rtextents=0 data blocks changed from 13107200 to 129761280  
  • 查看根目录扩展信息
 df -h  文件系统                 容量  已用  可用 已用% 挂载点 devtmpfs                 908M     0  908M    0% /dev tmpfs                    919M     0  919M    0% /dev/shm tmpfs                    919M  8.6M  911M    1% /run tmpfs                    919M     0  919M    0% /sys/fs/cgroup /dev/mapper/centos-root  495G  2.0G  494G    1% / /dev/vda1               1014M  150M  865M   15% /boot tmpfs                    184M     0  184M    0% /run/user/0  
  • 查看挂载的vg
vgscan    Reading volume groups from cache.   Found volume group "centos" using metadata type lvm2  
  • 创建home的lv到vg
lvcreate -L 1G -n home centos    Logical volume "home" created.  
  • 创建home的文件系统
mkfs.xfs /dev/mapper/centos-home  meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=65536 blks          =                       sectsz=512   attr=2, projid32bit=1          =                       crc=1        finobt=0, sparse=0 data     =                       bsize=4096   blocks=262144, imaxpct=25          =                       sunit=0      swidth=0 blks naming   =version 2              bsize=4096   ascii-ci=0 ftype=1 log      =internal log           bsize=4096   blocks=2560, version=2          =                       sectsz=512   sunit=0 blks, lazy-count=1 realtime =none                   extsz=4096   blocks=0, rtextents=0  
  • 挂载home
mount /dev/mapper/centos-home  
  • 查看home的信息
df -h  文件系统                 容量  已用  可用 已用% 挂载点 devtmpfs                 908M     0  908M    0% /dev tmpfs                    919M     0  919M    0% /dev/shm tmpfs                    919M  8.6M  911M    1% /run tmpfs                    919M     0  919M    0% /sys/fs/cgroup /dev/mapper/centos-root  495G  2.0G  494G    1% / /dev/vda1               1014M  150M  865M   15% /boot tmpfs                    184M     0  184M    0% /run/user/0 /dev/mapper/centos-home 1014M   33M  982M    4% /home  


 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!