kvm虚拟化安装配置及安装虚拟机

回复 收藏
vmware centos6.6 64位 kvm虚拟化安装配置



做这个实验,需要我们的cpu支持虚拟化,有的机器支持但是并未在bios开启,这个需要事先开启。

1. vmware安装centos6.6 64位 (略)

其中有几个注意的地方:
a. 内存给4g,(因为我自己的是8G内存),CPU---4g
b. 磁盘给50g, 或者再单独分一个磁盘,用来存储虚拟机文件
c. 最关键的一步,在创建虚拟机时,cpu是需要配置一下虚拟化的如图
d.网卡设置为桥接,或者nat

2.  安装kvm前的准备工作
a. 清除iptables规则
service iptables stop; service iptables save
b. 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

2.1
dhclient

3. 开始安装kvm
a. 检查你的系统是否支持虚拟化
grep -Ei 'vmx|svm' /proc/cpuinfo   --color
如果有输出内容,则支持,其中intel cpu支持会有vmx,amd cpu支持会有svm

#cat   /proc/cpuinfo   查看几盒,processor是从0开始的,最下面显示3则为4核
processor       : 3


b. 通过yum安装虚拟化的软件包
yum install -y kvm virt-*  libvirts  bridge-utils qemu-img
如果此处不能下载,换成阿里云的源
备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum makecache生成缓存



说明:
kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序
libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
bridge-utils:设置网络网卡桥接。
virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager
qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

c. 检查kvm模块是否加载
lsmod |grep kvm   --color
正常应该是:
kvm_intel              55496  3
kvm                   337772  1 kvm_intel

如果没有,需要执行

modprobe kvm-intel
还没有就重启一下试试

d. 配置网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
分别编辑eth0和br0
ifcfg-eth0改成如下:
DEVICE=eth0
HWADDR=00:0C:29:55:A7:0A
TYPE=Ethernet
UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0

ifcfg-br0改成如下:
DEVICE=br0
#HWADDR=00:0C:29:55:A7:0A
TYPE=Bridge
#UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.7
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
#如果vm为桥接模式,此处gateway为和ip一样,
DNS1=202.106.0.20

说明: 我的虚拟机是桥接模式,所以设置br0的ip和我的真机同样的网段,包括网关也是我路由器的ip,大家可以根据自己的环境去配置,目的是为了让虚拟机可以上网。

/etc/init.d/network restart
查看网卡如下:
br0       Link encap:Ethernet  HWaddr 00:0C:29:55:A7:0A
          inet addr:192.168.11.17  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:141326 errors:0 dropped:0 overruns:0 frame:0
          TX packets:90931 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:456024940 (434.8 MiB)  TX bytes:10933593 (10.4 MiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:55:A7:0A
          inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:341978 errors:0 dropped:0 overruns:0 frame:0
          TX packets:90946 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:468848861 (447.1 MiB)  TX bytes:10934699 (10.4 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:14:EF:D5
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

如果不出现virbr0则重启,

e. 启动或重启libvirtd服务和messagebus 服务

# /etc/init.d/libvirtd start
启动 libvirtd 守护进程:
# /etc/init.d/messagebus restart
终止系统消息总线:                                         [确定]
启动系统消息总线:                                         [确定]

此时可以查看网络接口列表,即查看网桥
#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c2955a70a       no              eth0
virbr0          8000.52540014efd5       yes             virbr0-nic

4. 创建虚拟机,
然后就可以在上面创建系统了,这个创建虚拟机和创建Linux系统是在一起的
每个虚拟机必须分配一定量的磁盘空间
因为是虚拟机,我们之前添加了一块50G的硬盘,现在挂载,格式化,分区,
#fdisk   /dev/sdb
n       p            
相当于给他划分了一个分区,给他全部空间
格式化

# mkfs.ext4 /dev/sdb1
# mkdir /data/
# mount /dev/sdb1 /data/
把他写入分区表
#vim   /etc/fstab/

/dev/sdb1               /data                   ext4    defaults        0 0
然后创建一个专门存放kvm的这样一个目录
#mkdir   /data/kvm




mkdir /data/kvm/  //创建一个存储虚拟机虚拟磁盘的目录,该目录所在分区必须足够大

virt-install \
--name  aming1 \
--ram 512 \
--disk path=/data/kvm/aming1.img,size=30 \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://mirrors.163.com/centos/6.7/os/i386/' \
--extra-args 'console=ttyS0,115200n8 serial'
[size=1.267]说明:

首先注意上面安装网址('http://mirrors.163.com/centos/6.7/os/i386)的时效性,可以
--extra-args 设定内核参数
--name  指定虚拟机的名字
--ram 指定内存分配多少
--disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 参考  http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html   示例:qemu-img create -f qcow2 -o preallocation=metadata  /data/test02.img 7G;  --disk path=/data/test02.img,format=qcow2,size=7,bus=virtio
--vcpus 指定分配cpu几个
--os-type 指定系统类型为linux
--os-variant 指定系统版本
--network  指定网络类型
--graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式
--console 指定控制台类型


--location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,

[size=1.333]如果我们是使用网络地址安装,改为--location 'http://mirrors.163.com/centos/6.7/os/i386/' \,回车后会提示安装
Welcome to CentOS for i386
                    ┌────────┤ Choose a Language ├────────┐
                    │                                     │
                    │ What language would you like to use │
                    │ during the installation process?    │
                    │                                     │
                    │      Catalan                ↑       │
                    │      Chinese(Simplified)    ‥      │
                    │      Chinese(Traditional)   ‥      │
                    │      Croatian               ‥      │
                    │      Czech                  ‥      │
                    │      Danish                 ‥      │
                    │      Dutch                  ‥      │
                    │      English                ↓       │
                    │               ┌────┐                │

                    │               │ OK │                │
                    │               └────┘                │
                    └─────────────────────────────────────┘

  / between elements  |  selects |  next screen

选择English,回车
Welcome to CentOS for i386
                ┌────────────┤ Configure TCP/IP ├────────────┐
                 │                                            │
                 │
  • Enable IPv4 support                    │
                     │        ( ) Dynamic IP configuration (DHCP) │
                     │        ( *) Manual configuration            │
                     │                                            │
                     │
  • Enable IPv6 support                    │
                     │        (*) Automatic                       │
                     │        ( ) Automatic, DHCP only            │
                     │        ( ) Manual configuration            │
                     │        ┌────┐              ┌──────┐        │

                     │        │ OK │              │ Back │        │
                     │        └────┘              └──────┘        │
                     └────────────────────────────────────────────┘

      / between elements  |  selects |  next screen


    选择网络先关选项,选择  Manual configuration , Automatic  回车  

    Welcome to CentOS for i386
           ┌────────────────┤ Manual TCP/IP Configuration ├─────────────────┐
           │                                                                │
           │ Enter the IPv4 and/or the IPv6 address and prefix (address /   │
           │ prefix).  For IPv4, the dotted-quad netmask or the CIDR-style  │
           │ prefix are acceptable. The gateway and name server fields must │
           │ be valid IPv4 or IPv6 addresses.                               │
           │                                                                │
           │ IPv4 address: 192.168.17.137__ / 255.255.255.0___              │
           │ Gateway:      192.168.17.2_____________________________        │
           │ Name Server:  8.8.8.8__________________________________        │
           │             ┌────┐                        ┌──────┐             │

           │             │ OK │                        │ Back │             │
           │             └────┘                        └──────┘             │
           └────────────────────────────────────────────────────────────────┘

      / between elements  |  selects |  next screen

    配置网络,ip可以随便设置一个,Gateway:设置为 17.2


    Welcome to CentOS for i386
    ┌────────────────────────────────┤ Warning ├─────────────────────────────────┐
    │         Error processing drive:                                 ↑          │

    │                                                                 ‥         │
    │         pci-0000:00:05.0-virtio-pci-virtio1                     ‥         │
    │         30720MB                                                 ‥         │
    │         Virtio Block Device                                     ‥         │
    │         This device may need to be reinitialized.               ‥         │

    │                                                                 ‥         │
    │         REINITIALIZING WILL CAUSE ALL DATA TO BE LOST!          ‥         │
    │                                                                 ‥         │
    │         This action may also be applied to all other disks      ‥         │
    │         needing reinitialization.                               ↓          │
    │                                                                            │
    │  ┌────────┐   ┌────────────┐   ┌───────────────┐   ┌───────────────────┐   │
    │  │ Ignore │   │ Ignore all │   │ Re-initialize │   │ Re-initialize all │   │
    │  └────────┘   └────────────┘   └───────────────┘   └───────────────────┘   │ │                                                                            │└────────────────────────────────────────────────────────────────────────────┘
      / between elements   |   selects   |   next screen

    选择第四个 Re-initialize all
    Welcome to CentOS for i386
                       ┌───────┤ Time Zone Selection ├───────┐

                        │                                     │
                        │ In which time zone are you located? │
                        │                                     │
                        │
  • System clock uses UTC           │
                        │                                     │
                        │  America/Monterrey               ↑  │
                        │  America/Montevideo              ‥ │
                        │  America/Montserrat              ‥ │
                        │  America/Nassau                  ‥ │
                        │  America/New York                ↓  │
                        │                                     │
                        │      ┌────┐          ┌──────┐       │
                        │      │ OK │          │ Back │       │
                        │      └────┘          └──────┘       │
                        └─────────────────────────────────────┘



      / between elements   |   selects   |   next screen
    选择时区接下来输入密码,回车

    Welcome to CentOS for i386
           ┌─────────────────────┤ Partitioning Type ├─────────────────────┐

           │                                                               │
           │ Installation requires partitioning of your hard drive.  The   │
           │ default layout is suitable for most users.  Select what space │
           │ to use and which drives to use as the install target.         │
           │                                                               │
           │                 Use entire drive                              │
           │                 Replace existing Linux system                 │
           │                 Use free space                                │
           │                                                               │
           │   Which drive(s) do you want to use for this installation?    │
           │        
  •     vda    30720 MB (Virtio Block Device) ↑         │
           │                                                               │

           │                      ┌────┐   ┌──────┐                        │
           │                      │ OK │   │ Back │                        │
           │                      └────┘   └──────┘                        │
           └───────────────────────────────────────────────────────────────┘
    ,<+>,<-> selection   |    Add drive   |    next screen

    直接OK回车,因为centos6没有在字符界面下分区的命令,所以整个一块磁盘,如果要自定义分区,则要启用vnc
    Welcome to CentOS for i386
         ┌─────────────┤ Writing storage configuration to disk ├──────────────┐   
         │ The partitioning options you have selected will now be written to  │
         │ disk.  Any data on deleted or reformatted partitions will be lost. │
         │                                                                    │
         │        ┌─────────┐               ┌───────────────────────┐         │
         │        │ Go back │               │ Write changes to disk │         │
         │        └─────────┘               └───────────────────────┘         │
         └────────────────────────────────────────────────────────────────────┘
      / between elements   |   selects   |   next screen


    点击Write changes to disk    回车,会自动安装,


    Welcome to CentOS for i386
    ────────────────────┤ Package Installation ├──────────────────────┐
         │                                94%                                │
         │                  Packages completed: 203 of 225                   │

         │                                                                   │
         │ Installing selinux-policy-targeted-3.7.19-279.el6.noarch (3 MB)   │
         │ SELinux targeted base policy                                      │
         └───────────────────────────────────────────────────────────────────┘
      / between elements   |   selects   |   next screen
    现在重启

    Welcome to CentOS for i386
    ───────────────────────┤ Complete ├────────────────────────────┐

         │ Congratulations, your CentOS installation is complete.            │

         │ Please reboot to use the installed system.  Note that updates may │

         │ be available to ensure the proper functioning of your system and  │
         │ installation of these updates is recommended after the reboot.    │
         │                            ┌────────┐                             │

         │                            │ Reboot │                             │
         │                            └────────┘                             │
         └───────────────────────────────────────────────────────────────────┘

                            to exit





    [size=1.333]如果我们是使用本地资源安装,有两种方法,一种是下载ISO,一种是挂载为本地的的一个目录

    (--location '/mnt/', 其中/mnt/下就是我们挂载的光盘镜像mount /dev/cdrom /mnt)如果是绝对路径,那么后面还需要指定一个安装介质,比如NFS,假如虚拟机设置ip后,不能连外网,那么就会提示让我们选择安装途径:[size=1.333]

    使用NFS安装
    # mount  /dev/cdrom  /mnt/

    # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        11G  1.4G  8.7G  14% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda1       190M   31M  149M  18% /boot
    /dev/sdb1        50G  1.9G   45G   4% /data
    /dev/sr0        3.7G  3.7G     0 100% /mnt
    # ls /mnt
    CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
    EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
    EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
    GPL              repodata                  TRANS.TBL
    images           RPM-GPG-KEY-CentOS-6


    现在安装
    #qemu-img create -f qcow2 -o preallocation=metadata  /data/kvm/aming1.qcow1  10G





    然后
    virt-install \
    --name  aming1 \
    --ram 512 \
    --disk path=/data/kvm/aming1.qcow1 ,
    format=qcow2,
    size=7,
    bus=virtio \
    --vcpus 1 \
    --os-type linux \
    --os-variant rhel6 \
    --network bridge=br0 \
    --graphics none \
    --console pty,target_type=serial \
    --location '/mnt/' \
    --extra-args 'console=ttyS0,115200n8 serial'
    也即
    virt-install --name aming1 --ram 512 --disk path=/data/kvm/aming1.qcow2,format=qcow2,size=7,bus=virtio --vcpus 1 --os-type linux --os-variant rhel6 --network bridge=br0 --graphics none --console pty,target_type=serial --location '/mnt/' --extra-args 'console=ttyS0,115200n8 serial'

    进入安装
    ┤ Choose a Language ├────────┐
                        │                                     │
                        │ What language would you like to use │
                        │ during the installation process?    │
                        │                                     │
                        │      Catalan                ↑       │
                        │      Chinese(Simplified)    ‥      │
                        │      Chinese(Traditional)   ‥      │
                        │      Croatian               ‥      │
                        │      Czech                  ‥      │
                        │      Danish                 ‥      │
                        │      Dutch                  ‥      │
                        │      English                ↓       │
                        │                                     │
                        │               ┌────┐                │
                        │               │ OK │                │
                        │               └────┘                │
                        └─────────────────────────────────────┘



    选择NFS directory  
                             ──┤ Installation Method ├───┐
                            │                             │
                            │ What type of media contains │
                            │ the installation image?     │
                            │                             │
                            │        Local CD/DVD         │
                            │        Hard drive           │
                            │        NFS directory        │
                            │        URL                  │
                            │   ┌────┐       ┌──────┐     │

                            │   │ OK │       │ Back │     │
                            │   └────┘       └──────┘     │
                            └─────────────────────────────┘



    配置ip
      ┌────────────┤ Configure TCP/IP ├────────────┐
                     │                                            │
                     │
  • Enable IPv4 support                    │
                     │        ( ) Dynamic IP configuration (DHCP) │
                     │        (*) Manual configuration            │
                     │                                            │
                     │
  • Enable IPv6 support                    │
                     │        (*) Automatic                       │
                     │        ( ) Automatic, DHCP only            │
                     │        ( ) Manual configuration            │
                     │                                            │
                     │        ┌────┐              ┌──────┐        │
                     │        │ OK │              │ Back │        │
                     │        └────┘              └──────┘        │
                     │                                            │
                     │                                            │
                     └────────────────────────────────────────────┘

           ┌────────────────┤ Manual TCP/IP Configuration ├─────────────────┐
           │                                                                │
           │ Enter the IPv4 and/or the IPv6 address and prefix (address /   │
           │ prefix).  For IPv4, the dotted-quad netmask or the CIDR-style  │
           │ prefix are acceptable. The gateway and name server fields must │
           │ be valid IPv4 or IPv6 addresses.                               │
           │                                                                │
           │ IPv4 address: 192.168.17.139__ / 255.255.255.0___              │
           │ Gateway:      192.168.17.2_____________________________        │
           │ Name Server:  202.106.0.20_____________________________        │
           │                                                                │
           │             ┌────┐                        ┌──────┐             │
           │             │ OK │                        │ Back │             │
           │             └────┘                        └──────┘             │
           │                                                                │
           │                                                                │
           └────────────────────────────────────────────────────────────────┘
    打开新的session配置NFS,把/mnt共享出去
    # vi /etc/exports
    /mnt  192.168.17.0/24

    #/etc/init.d/rpcbind start; /etc/init.d/nfs start


    继续配置,在原来的session中,配置,NFS server name:  填写母机的ip即可

         ┌───────────────────────────┤ NFS Setup ├────────────────────────────┐
         │                                                                    │
         │ Please enter the server and NFSv3 path to your CentOS installation │
         │ image and optionally additional NFS mount options.                 │
         │                                                                    │
         │       NFS server name:              192.168.17.128__________       │
         │       CentOS directory:             /mnt/images/install.img_       │
         │       NFS mount options (optional): ro______________________       │
         │                                                                    │
         │             ┌────┐                           ┌──────┐              │
         │             │ OK │                           │ Back │              │
         │             └────┘                           └──────┘              │
         └────────────────────────────────────────────────────────────────────┘






    当按下回车后,稍等几秒钟就可以看到安装提示了,和前面的网络的安装方法是一样的,

    开始安装......
    搜索文件 .treeinfo......                             |  720 B     00:00 ...
    搜索文件 vmlinuz......                               | 7.7 MB     00:02 ...
    搜索文件 initrd.img......                            |  63 MB     00:23 ...
    创建存储文件 centos6.6_1.img                       |  30 GB     00:00
    创建域......                                          |    0 B     00:00
    连接到域 centos6.6_1
    Escape character is ^]

    要想退回到宿主机,ctrl  ] 即可。

    上面两种方法均可安装子机


    现在登录

    CentOS release 6.7 (Final)
    Kernel 2.6.32-573.el6.i686 on an i686

    localhost.localdomain login: root
    Password:


    查看内存及磁盘容量是否合适
    # free -m
                 total       used       free     shared    buffers     cached
    Mem:           498         92        405          0          5         37
    -/+ buffers/cache:         49        448
    Swap:         1023          0       1023
    # df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           28G  631M   26G   3% /
    tmpfs                 250M     0  250M   0% /dev/shm
    /dev/vda1             477M   31M  421M   7% /boot


    要想退回到宿主机(母机),ctrl  ] 即可。



    怎样登录子机
    #virsh list 可以列出当前的子机列表。
    #virsh list --all   列出所有的子机列表
    #virsh console aming1  可以进入指定的子机,是在没有网络的情况下

    如果在关机的时候登录则,
    #virsh   start   aming1  --console


    [size=1.267]怎样删除子机
    #virsh list 可以列出当前的子机列表。
    #virsh list --all   列出所有的子机列表

    假如想彻底删除aming2
    # virsh destroy aming2
    易错误处destroy容易写成destory
    在list列表中删除aming2
    #virsh   undefine aming2


    [size=1.267]子机的关机
    # virsh shutdown aming1
    关闭子机,但是这样不彻底,因为它用到了一个服务,acpid,
    母机通过这个服务可以控制子机的电源,
    在子机安装
    # yum install -y acpid
    #然后启动它
    #/etc/init.d/acpid  start
    [size=1.267]设置子机随母机自动开启:
    # virsh autostart aming1
    域 aming1标记为自动开始
    设置在开启母机的时候取消自动开启子机:
    # virsh autostart   --disable   aming1
    域 aming1标记为自动开始
    [size=1.267]挂起子机
    #virsh suspend aming1
    域 aming1 被挂起
    # virsh resume aming1
    域 aming1 被重新恢复



  • 2016-05-29 19:23 举报
    已邀请:
    0

    Kry1702

    赞同来自:

    get

    回复帖子,请先登录注册

    退出全屏模式 全屏模式 回复
    评分
    可选评分理由: