云计算:一种资源的使用模式

弹性,按需付费
资源
降低成本

公有云:亚马逊、阿里云
私有云:
混合云:

安装:

yum install qemu-kvm qemu-kvm-tools virt-manager libvirt

[root@yz3110 ~]# /etc/init.d/libvirtd start
Starting libvirtd daemon: [ OK ]

virbr0 Link encap:Ethernet HWaddr 52:54:00:EA:A5:53
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:30201 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:1392016 (1.3 MiB)

[root@yz3110 networks]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400eaa553 yes virbr0-nic

创建虚拟机:
[root@yz3110 networks]# qemu-img create -f raw /data0/Centos-6.2-x86_64.raw 5G
Formatting '/data0/Centos-6.2-x86_64.raw', fmt=raw size=5368709120
[root@yz3110 networks]# file /data0/Centos-6.2-x86_64.raw
/data0/Centos-6.2-x86_64.raw: data
[root@yz3110 networks]# qemu-img info /data0/Centos-6.2-x86_64.raw
image: /data0/Centos-6.2-x86_64.raw
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 0

[root@yz3110 networks]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 2
Stepping: 3
CPU MHz: 2400.266
BogoMIPS: 4800.53
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0-3

virt-install -virt-type kvm --name Cenntos-6.6-x86_64 --ram 512(内存) --cdrom=/data0/Centos-6.6-x86_64.iso --disk pathh=/data0/*.raw --network netrowrk=default
[root@yz3110 data0]# modprobe kvm
[root@yz3110 data0]# modprobe vhost-net
[root@yz3110 data0]# rpm -q virt-manager
virt-manager-0.9.0-19.el6.x86_64

virt-install --virt-type kvm --name Centos-6.2-x86_64 --ram 512 --cdrom=/data0/soft/CentOS-6.2-x86_64-minimal.iso --disk path=/data0/Centos-6.2-x86_64.raw --network network=default --graphics vnc,listem=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel16
ERROR No domains available for virt type 'hvm', arch 'x86_64', domain type 'kvm'
解决:
In my case the problem is with hardware virtualization disabled in BIOS. Also I was in a state that I can't turn that on. Replacing 'kvm' with 'qemu' fixed my problem.

[root@yz3110 data0]# virt-install --virt-type qemu --name Centos-6.2-x86_64 --ram 512 --cdrom=/data0/soft/CentOS-6.2-x86_64-minimal.iso --disk path=/data0/Centos-6.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux
WARNING KVM acceleration not available, using 'qemu'

Starting install...
Creating domain... | 0 B 00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

监控:
yum install virt-top

zabbix

优化:
内存
[root@yz3110 qemu]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [never]

[root@yz3110 qemu]# ps -ef |grep ksm
root 59 2 0 Feb01 ? 00:00:00 [ksmd]
root 1298 1 0 14:04 pts/0 00:00:00 /bin/bash /usr/sbin/ksmtuned

io优化:
virtio

/etc/udev/rules.d/70-persistent-net.rules
记录虚拟机操作的

virsh undefine Centos-6.2-x86_64 删除虚拟机

[root@yz3110 data0]# virsh undefine Centos-6.2-x86_64
error: Refusing to undefine while domain managed save image exists

[root@yz3110 data0]# virsh undefine Centos-6.2-x86_64 --managed-save
Domain Centos-6.2-x86_64 has been undefined

[root@yz3110 vmdata]# brctl addbr br0 创建网桥
[root@yz3110 vmdata]# brctl addif br0 eth1桥接到eth1上

kvm优势:
1)开源
2)性能好,同样的硬件条件下能够提供更好的虚拟机性能,主要是因为kvm架构简单,代码只有2W行,一开始就支持硬件虚拟化
3)免费方案多,稳定和兼容性也越来越好
4)广泛免费的技术支持

egrep '(vmx|svm)' /proc/cpuinfo 查看是否支持虚拟化

在KVM环境中,一下rpm包都是必需的
[yongsan@yz3110 ~]$ rpm -qa |grep -E 'qemu|libvirt|virt'
python-virtinst-0.600.0-18.el6.noarch
libvirt-java-devel-0.4.7-1.el6.noarch
libvirt-python-0.10.2-29.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6.x86_64
qemu-img-0.12.1.2-2.415.el6.x86_64
virt-top-1.0.4-3.11.el6.x86_64
virt-manager-0.9.0-19.el6.x86_64
qemu-kvm-tools-0.12.1.2-2.415.el6.x86_64
virt-what-1.11-1.1.el6.x86_64
libvirt-devel-0.10.2-29.el6.x86_64
libvirt-java-0.4.7-1.el6.noarch
libvirt-client-0.10.2-29.el6.x86_64
virt-viewer-0.4.1-7.el6.x86_64
libvirt-0.10.2-29.el6.x86_64
gpxe-roms-qemu-0.9.7-6.9.el6.noarch

查看kvm模块是否载入
[yongsan@yz3100 ~]$ lsmod |grep kvm
kvm_intel 41436 16
kvm 256599 1 kvm_intel

virt-manager的使用:图形化的管理工具

安装图形化界面
yum groupinstall -y "Desktop platform" "Desktop platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "x Window System" "Chinese Suport [zh]" "Interenet Browser"

vnc配置:
安装vnc
yum install -y tigervnc
yum install -y tigervnc-server
vim /etc/sysconfig/vncseervers
vncpaasswd

问题:
[root@yz3110 ~]# service vncserver restart
Shutting down VNC server: [ OK ]
Starting VNC server: 2:root xauth: creating new authority file /root/.Xauthority

WARNING: The first attempt to start Xvnc failed, possibly because the font
catalog is not properly configured. Attempting to determine an appropriate
font path for this system and restart Xvnc using that font path ...
Could not start Xvnc.

/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids
/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids

[FAILED]
解决:
yum install pixman pixman-devel libXfont -y

[root@yz3110 ~]# service vncserver restart
Shutting down VNC server: [ OK ]
Starting VNC server: 2:root
New 'yz3110.hadoop.data.sina.com.cn:2 (root)' desktop is yz3110.hadoop.data.sina.com.cn:2

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/yz3110.hadoop.data.sina.com.cn:2.log

[ OK ]

[yongsan@yz3110 ~]$ numactl --hardware查看当前CPU的硬件情况
[yongsan@yz3110 ~]$ numastat 查看每个节点的内存统计

[yongsan@yz3110 ksm]$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:05.0 RAM memory: Red Hat, Inc Virtio memory balloon

virsh # qemu-monitor-command Centos-6.2-x86_64 --hmp --cmd info balloon
balloon: actual=512

virsh # qemu-monitor-command Centos-6.2-x86_64 --hmp --cmd balloon 1024

virsh # qemu-monitor-command Centos-6.2-x86_64 --hmp --cmd info balloon
balloon: actual=1024

虚拟机限速
virsh # memtune Centos-6.2-x86_64 --hard-limit 20148 --config

kvm学习篇的更多相关文章

  1. js学习篇1--数组

    javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...

  2. Tomcat集群配置学习篇-----分布式应用

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

  3. (转载)OC学习篇之---概述

    前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...

  4. 《Mysql 公司职员学习篇》 第二章 小A的惊喜

          第二章 小A的惊喜  ---- 认识数据库 吃完饭后,小Y和小A回到了家里,并打开电脑开始学习Mysql. 小Y:"小A,你平时的Excell文件很多的情况下,怎么样存放Exce ...

  5. Java多线程(学习篇)

    Java多线程:(学习篇) 1.什么是线程 2.线程状态 3.线程中断 4.线程交互 5.同步机制 6.锁机制 7.堵塞队列与堵塞栈 8.条件变量.原子量.线程池等 9.线性安全类和Callable与 ...

  6. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

  7. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

  8. 鸟哥Linux私房菜基础学习篇学习笔记1

    鸟哥Linux私房菜基础学习篇学习笔记1 第三章 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用. 所谓的分区只是针对64Bytes的分 ...

  9. Scrapy学习篇(十)之下载器中间件(Downloader Middleware)

    下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量.底层的系统. 激活Downloader Midd ...

随机推荐

  1. django-Query Ajax 实例 ($.ajax、$.post、$.get)

    Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:ht ...

  2. python web框架 Django的APP以及目录介绍 django 1.11版本

    如果有很多业务请求函数 应该放在app目录 很多业务放在主站上 当用户一点跳到分站 例如 一个项目叫运维平台  他的业务 有资产管理 私有云 监控 不同业务线 chouti项目 - chouti - ...

  3. SignalTap II进阶学习

    1. 多级触发 有时候我们可能需要利用多个信号(最多10个)依次触发后,观察特定的值.这这时候我们可以增加触发条件来满足我们的需求. 多个触发信号如上图所示,只有依次发生SW[0]上升沿. SW[1] ...

  4. Oracle DG备库强制switch_over过程

    故障描述: 主库异常下线,需要将备库强制启动为主库,切断日志时提示需要介质恢复,执行介质恢复后,再激活日志即可进行切换 1.  执行alter database recover managed sta ...

  5. python mysqldb 模块学习

    一.安装(环境win7 .python2.7) Python2.x 版本,使用MySQL-python: 安装包:MySQL-python-1.2.5.win32-py2.7.exe(双击安装) 下载 ...

  6. python全栈开发从入门到放弃之文件处理

    一.文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 事例文件内容 [一棵开花的树] 如何让你遇见我 在我最美丽的时刻 为这 我已在佛前求了五百年 求 ...

  7. cdojQ - 昊昊爱运动 II

    地址:http://acm.uestc.edu.cn/#/contest/show/95 题目: Q - 昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others) ...

  8. Javascript中call()和apply()的用法 ----2

    前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.call 和 apply二者的作用完全一样,只是接受 ...

  9. shiro的Realm

    public class UserRealm extends AuthorizingRealm { private UserService userService = new UserServiceI ...

  10. CSS3圆盘时钟

    在线演示 本地下载