天天看点

KVM部署及概念笔记

云计算概述:

   什么是云计算:资源使用和交付模式。

    虚拟化:一种具体的技术,用来将物理机虚拟成为多个相互独立的虚拟机。

   云计算不等于虚拟化。使用了虚拟化的技术做支撑。

IAAS 基础设施即服务

PAAS

SAAS

私有云 公有云 混合云

KVM。  服务器虚拟化  桌面虚拟化 应用虚拟化

  硬件虚拟化。Intel vt-x/EPT  AMD  AMD-v /RVI

 libvirt   libvrit API库 +  libvirtd datemon + 用户工具(virsh)

xen kvm esxi qemu virtualbox

virsh shutdown   start  undefine  list edit 

libvrit xml     

#####################################################################################################################################################################33

[root@linux-node1 ~]# cat /etc/redhat-release 

CentOS Linux release 7.1.1503 (Core) 

[root@linux-node1 ~]# grep -E '(vmx|svm)' /proc/cpuinfo               ----查看是否支持虚拟化

[root@linux-node1 ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

qemu-kvm:用户态的程序与kvm进行交互

qemu-kvm-tools:用户态的程序与kvm进行交互的工具

virt-manager:虚拟化管理的工具

libvirt:

virt-install:

创建一个10G的硬盘:

[root@linux-node1 ~]# qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G

Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240 

查看是否有kvm:

[root@linux-node1 ~]# lsmod |grep kvm                  

kvm_intel             148081  0 

kvm                   461126  1 kvm_intel

启动libvirtd并设置开机自动加载并查看状态:

[root@linux-node1 ~]# systemctl enable libvirtd.service

[root@linux-node1 ~]# systemctl start libvirtd.service 

[root@linux-node1 ~]# systemctl status libvirtd.service

将光盘挂载上:

[root@linux-node1 ~]# mount /dev/cdrom /mnt

mount: /dev/sr0 is write-protected, mounting read-only

使用dd命令做一个ISO镜像:

[root@linux-node1 ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso

8419328+0 records in

8419328+0 records out

4310695936 bytes (4.3 GB) copied, 285.28 s, 15.1 MB/s

创建一台kvm虚拟机:(首先保证有vnc客户端)

[root@linux-node1 ~]# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...

Creating domain...                                                                                            |    0 B  00:00:03     

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.

打开VNC客户端:10.0.0.111:5900

tab键:指定内核参数  net.ifnames=0 biosdevname=0     装出来的系统就是eth0

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

[root@localhost qemu]# virsh list                ----查看虚拟机是否运行

 Id    Name                           State

----------------------------------------------------

 2     CentOS-7.1-x86_64              running

[root@localhost qemu]# virsh list -all           ----查看所有虚拟机是否运行

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64    -----编辑虚拟机,通过xml

[root@localhost qemu]# virsh start CentOS-7.1-x86_64    -----启动虚拟机

管理kvm虚拟机:

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64     

<vcpu placement='auto' current="1">4</vcpu>       将cpu设置为自动调整,最低一个,最大四个

改完之后重启才生效

[root@localhost qemu]# virsh shutdown  CentOS-7.1-x86_64

[root@localhost qemu]# virsh start CentOS-7.1-x86_64

设置成2个cpu

[root@localhost qemu]# virsh setvcpus CentOS-7.1-x86_64 2 --live

设置成3个cpu

[root@localhost qemu]# virsh setvcpus CentOS-7.1-x86_64 3 --live

总结:只支持热添加,不支持热删除

回虚拟机查看:

[root@localhost qemu]cat /proc/cpuinfo         ----就可以看到cpu有4核了

########设置内存的热添加与热减少########

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64  

 <memory unit='KiB'>4048576</memory>

  <currentMemory unit='KiB'>1048576</currentMemory>

更改之后回虚拟机查看,内存从1G变成了721M

KVM之内存管理的气球模式:

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info balloon

balloon: actual=1024

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon 600

回虚拟机查看,内存从721变成了297M

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon 2000

回虚拟机查看,内存从297变成了1697M

################网络##################

添加一个网桥:

[root@localhost opt]# brctl addbr br0

桥接网络:

[root@localhost ~]# brctl addif br0 eth0 && ip addr del dev eth0 10.0.0.111/24 && ifconfig br0 10.0.0.111/24 up && routeadd default gw 10.0.0.2 && iptables -F

[root@localhost ~]# virsh edit CentOS-7.1-x86_64    

  <interface type='bridge'>

      <mac address='52:54:00:f3:42:55'/>

      <source bridge='br0'/>

此处修改后kvm虚拟机里面的网桥就会变成和宿主机一个网段的,并且可以用ssh客户端登录

如果IP地址出现的全部是mac地址,则需要把IP地址设置成静态的,并设置DNS,然后才能登录和ping通外网

#############硬盘############

全镜像模式          稀疏模式

raw                   qcow2

[root@localhost ~]# qemu-img info /opt/CentOS-7.1-x86_64.raw

image: /opt/CentOS-7.1-x86_64.raw

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 1.3G

#I/O优化  CDN公司必问

 Virtio  virio-net virtio-blk 半虚拟化

#scheudler   

[root@oldboy ~]# dmesg | grep -i scheduler

[    0.775193] io scheduler noop registered

[    0.775195] io scheduler deadline registered (default)

[    0.775396] io scheduler cfq registered

[root@oldboy ~]# cat /sys/block/sda/queue/scheduler 

noop [deadline] cfq 

[root@oldboy ~]# echo cfq > /sys/block/sda/queue/scheduler 

noop deadline [cfq]

永久修改 加入内核参数    elevator=noop

     本文转自陈继松 51CTO博客,原文链接:http://blog.51cto.com/chenjisong/1725665,如需转载请自行联系原作者

继续阅读