云计算之KVM安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云计算之KVM安装相关的知识,希望对你有一定的参考价值。

云计算之KVM安装(二)

 

调整虚拟机 


技术分享
虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V

创建虚拟机步骤
1.准备虚拟机硬盘
2.需要系统iso镜像
3.需要安装一个vnc的客户端来连接

查看系统环境

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[[email protected]-node1 ~]# uname -r
3.10.0-327.36.2.el7.x86_64

Centos7下载:http://pan.baidu.com/s/1c2MHsGg 密码:5w1u

 

检查是否有vmx或者svm

[[email protected] ~]# grep -E (vmx|svm) /proc/cpuinfo 
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt

安装kvm用户态模块

[[email protected] ~]# yum list|grep kvm
libvirt-daemon-kvm.x86_64               1.2.17-13.el7_2.5              updates  
pcp-pmda-kvm.x86_64                     3.10.6-2.el7                   base     
qemu-kvm.x86_64                         10:1.5.3-105.el7_2.7           updates  
qemu-kvm-common.x86_64                  10:1.5.3-105.el7_2.7           updates  
qemu-kvm-tools.x86_64                   10:1.5.3-105.el7_2.7           updates 
[[email protected] ~]# yum install qemu-kvm qemu-kvm-tools libvirt net-tools -y
libvirt 用来管理kvm
kvm属于内核态,不需要安装。但是需要一些类似于依赖的
启动
[[email protected] ~]# systemctl start libvirtd.service
[[email protected]-node1 ~]# systemctl enable libvirtd.service

 

启动之后我们可以使用ifconfig进行查看,libvirtd已经为我们安装了一个桥接网卡

[[email protected] ~]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
       inet6 fe80::20c:29ff:fef4:affe  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:f4:af:fe  txqueuelen 1000  (Ethernet)
       RX packets 34379  bytes 41300995 (39.3 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
           TX packets 11590  bytes 1384679 (1.3 MiB)
       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<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 103  bytes 7866 (7.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 103  bytes 7866 (7.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
       ether 52:54:00:f6:bd:c9  txqueuelen 0  (Ethernet)
        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

 

libvirtd为我们启动了一个dnsmasqp,这个主要是用来dhcp连接的,这个工具会给我们的虚拟机分配IP地址

[[email protected] ~]# ps -ef|grep dns
nobody     5233      1  0 14:27 ?        00:00:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       5234   5233  0 14:27 ?        00:00:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       5310   2783  0 14:31 pts/0    00:00:00 grep --color=auto dns

 

查看磁盘空间大小 
  最好是20G以上

[[email protected] tmp]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   48G  1.7G   46G   4% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G  8.6M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                497M  167M  330M  34% /boot
tmpfs                    378M     0  378M   0% /run/user/0

 

上传镜像 
提示:如果使用rz上传镜像可能会出现错误,所以我们使用dd命令,复制系统的镜像。只需要挂载上光盘即可

[[email protected] opt]# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso
[[email protected]-node1 opt]# ll
total 33792
-rw-r--r-- 1 root root 34603008 Jun 12 18:18 CentOS-7.2-x86_64-DVD-1511.iso

 

下载VNC 
下载地址:http://www.tightvnc.com/download/2.8.5/tightvnc-2.8.5-gpl-setup-64bit.msi 
安装完VNC如下图 
技术分享
技术分享

 

创建磁盘 
提示: qemu-img软件包是我们安装qemu-kvm-tools 依赖给安装上的

[[email protected] opt]# qemu-img create -f raw /opt/CentOS-7.2-x86_64.raw 10G
[[email protected]-node1 opt]# ll
总用量 617472
-rw-r--r--. 1 root root 10737418240 11月 16 09:52 CentOS-7.2-x86_64.raw
-rw-r--r--. 1 root root   632291328 6月   6 16:20 CentOS-7-x86_64-Minimal-1511.iso

  -f 制定虚拟机格式,raw是裸磁盘

  /opt/Centos  存放路径

  10G 代表镜像大小

 

安装启动虚拟机的包

[[email protected] tmp]# yum install -y virt-install

 

安装虚拟机 
 可以使用—help查看相关存储

[[email protected] tmp]# virt-install --help

我们可以指定虚拟机的CPU、磁盘、内存等

安装虚拟机

[[email protected] opt]# virt-install --name CentOS-7.2-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1511.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole


--name = 给虚拟机起个名字 --ram = 内存大小 --cdrom = 镜像位置,就是我们上传iso镜像的位置,我放在/tmp下了 --disk path = 指定磁盘 --network network= 网络配置 default 就会用我们刚刚ifconfig里面桥接的网卡 --graphics vnc,listen= 监听vnc, 默认连接端口是从5900开始的
[[email protected] opt]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     CentOS-7.2-x86_64              running
[[email protected] tmp]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2036/mysqld         
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      5767/qemu-kvm       
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      4401/rpcbind        
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1163/epmd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      5233/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1105/sshd           
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1101/beam           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1701/master         
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      1101/beam           
tcp6       0      0 :::111                  :::*                    LISTEN      4401/rpcbind        
tcp6       0      0 :::4369                 :::*                    LISTEN      1163/epmd           
tcp6       0      0 :::22                   :::*                    LISTEN      1105/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1701/master         
tcp6       0      0 :::5672                 :::*                    LISTEN      1101/beam           
udp        0      0 192.168.122.1:53        0.0.0.0:*                           5233/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           5233/dnsmasq        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           4401/rpcbind        
udp        0      0 0.0.0.0:123             0.0.0.0:*                           866/chronyd         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           866/chronyd         
udp        0      0 0.0.0.0:760             0.0.0.0:*                           4401/rpcbind        
udp6       0      0 :::111                  :::*                                4401/rpcbind        
udp6       0      0 ::1:323                 :::*                                866/chronyd         
udp6       0      0 :::760                  :::*                                4401/rpcbind        

 

提示:因为vnc默认是从5900开始的,所以我们如果是第一台不需要输入端口号

技术分享

安装界面如下: 
技术分享
因为centos7 默认网卡发生改变,我们需要修改内核参数,使用eth0作为网卡 
技术分享
光标移动到Install CentOS上,按tab键 输入net.ifnames=0 biosdevname=0 回车

分区说明 
提示:我们不分交换分区,因为公有云上的云主机都是没有交换分区的 
技术分享

分区如下: 
技术分享
然后我们点击Done 
本次分配分区按照10G内存进行分配 
分配标准分区 
技术分享
技术分享
技术分享
技术分享
温馨提示:在虚拟机的世界里,越简单越好。像阿里云系统分区以前是给20个G,现在是给40个G 
 装系统步骤不详细说明了,过于简单,请自行百度

 

虚拟机安装完成后是关闭了,我们需要启动

[[email protected] opt]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     CentOS-7.2-x86_64              关闭
[[email protected]-node1 ~]# virsh start CentOS-7.2-x86_64
#CentOS-7.2-x86_64 是虚拟机的名字,是我们创建的时候定义的

 





























以上是关于云计算之KVM安装的主要内容,如果未能解决你的问题,请参考以下文章

云计算之KVM虚拟化最佳实践

云计算之KVM简介

虚拟化之KVM

带你走进虚拟化世界之KVM

云计算之基,一文带你速懂虚拟化KVM和XEN

浓缩版:云计算运维KVM监控工具之Sensu开源版