码迷,mamicode.com
首页 > 其他好文 > 详细

KVM部署及概念笔记

时间:2015-12-17 16:20:36      阅读:674      评论:0      收藏:0      [点我收藏+]

标签:云计算   服务器   虚拟机   intel   start   

云计算概述:


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

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

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


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           ----查看所有虚拟机是否运行

 Id    Name                           State

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

 2     CentOS-7.1-x86_64              running


[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>

改完之后重启才生效

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

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


更改之后回虚拟机查看,内存从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 

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

noop deadline [cfq]


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


本文出自 “linux” 博客,请务必保留此出处http://chenjisong.blog.51cto.com/7858025/1725665

KVM部署及概念笔记

标签:云计算   服务器   虚拟机   intel   start   

原文地址:http://chenjisong.blog.51cto.com/7858025/1725665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!