kvm学习篇
云计算:一种资源的使用模式
弹性,按需付费
资源
降低成本
公有云:亚马逊、阿里云
私有云:
混合云:

安装:
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学习篇的更多相关文章
- js学习篇1--数组
javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...
- Tomcat集群配置学习篇-----分布式应用
Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...
- (转载)OC学习篇之---概述
前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...
- 《Mysql 公司职员学习篇》 第二章 小A的惊喜
第二章 小A的惊喜 ---- 认识数据库 吃完饭后,小Y和小A回到了家里,并打开电脑开始学习Mysql. 小Y:"小A,你平时的Excell文件很多的情况下,怎么样存放Exce ...
- Java多线程(学习篇)
Java多线程:(学习篇) 1.什么是线程 2.线程状态 3.线程中断 4.线程交互 5.同步机制 6.锁机制 7.堵塞队列与堵塞栈 8.条件变量.原子量.线程池等 9.线性安全类和Callable与 ...
- 鸟哥Linux私房菜基础学习篇学习笔记3
鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...
- 鸟哥Linux私房菜基础学习篇学习笔记2
鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...
- 鸟哥Linux私房菜基础学习篇学习笔记1
鸟哥Linux私房菜基础学习篇学习笔记1 第三章 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用. 所谓的分区只是针对64Bytes的分 ...
- Scrapy学习篇(十)之下载器中间件(Downloader Middleware)
下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量.底层的系统. 激活Downloader Midd ...
随机推荐
- Angular学习笔记—架构简述
这个架构图展现了 Angular 应用中的 8 个主要构造块: 模块 (module) 组件 (component) 模板 (template) 元数据 (metadata) 数据绑定 (data b ...
- NoSQL选型及HBase案例详解(转)
从 NOSQL的类型到 常用的产品,我们已经做过很多关于NoSQL的文章,今天我们从国内著名的互联网公司及科研机构的实战谈一下NoSQL数据库. NoSQL一定程度上是基于一个很重要的原理—— CAP ...
- Mongo 查询
Mongo 查询 mongo js 遍历 db.getCollection('CPU').find({}).limit(100).sort({"time":-1}).forEa ...
- laravel command命令行
生成类 为了创建一个新命令,你可以使用Artisan中的 command:make 命令生成一个骨架作为你的起点: 生成一个命令类 php artisan command:make FooComman ...
- Java集合(5):HashSet
存入Set的每个元素必须是惟一的,因为Set不保存重复元素.加入Set的元素必须定义equals()方法以确保对象的唯一性.Set不保证维护元素的次序.Set与Collection有完全一样的接口. ...
- 子元素绝对定位absolute后,自动撑开宽度
position: absolute; white-space: nowrap;
- PAT 天梯赛 L1-019. 谁先倒 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-019 AC代码 #include <iostream> #include <cstdio&g ...
- RPC数据通信
RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”.目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用.远程调用的应用场 ...
- 验证环境中的program为什么必须是automatic
最近在项目中,发现验证环境中的顶层的program(一般将program作为验证环境的入口),都是automatic的. 其实Program默认是static的,那么为什么需要把验证环境做成autom ...
- kali 2016:mount ntfs 分区只读 --Falling back to read-only mount because the NTFS partition is in an unsafe state.
mount ntfs 分区 mount /dev/sdb1 /mnt/d 提示: The disk contains an unclean file system (0, 0).Metadata ke ...