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

一. 安装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


 

  • 47
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hackD_K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值