设为首页 收藏本站
查看: 959|回复: 0

[经验分享] KVM 虚拟化 初体验

[复制链接]

尚未签到

发表于 2017-6-23 09:57:22 | 显示全部楼层 |阅读模式
  KVM 是 Kernel-based Virtual Machine 的简称,是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案;
  使用 KVM ,可允许运行多个虚拟机,包括 Linux 和 Windows操作系统。
  KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。
  KVM 安装
  在Windows 7系统中安装使用vmware,在vmware里安装linux系统,并在linux系统中安装使用kvm,虚拟化linux系统。
  VMware: VMware® Workstation 10.0.0 build-1295980
  Linux: CentOS-6.8-x86_64-minimal.iso

一、在VMware中安装Linux CentOS系统
  使用自定义方式安装CentOS
DSC0000.png

  先创建虚拟机,然后再在光驱中指定iso镜像文件,再安装linux系统。
DSC0001.png

  系统安装完成后,关闭操作系统,打开CentOS系统的虚拟机设置,点击处理器,选择“虚拟化..."
  重启系统
  命令检查是否支持虚拟化,
  egrep -c '(vmx|svm)' /proc/cpuinfo
DSC0002.png

  结果为支持虚拟化的核数

二、设置网络
  修改ip地址为静态ip
  vi /etc/sysconfig/network-scripts/ifcfg-eth0



DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.126.200
NETMASK=255.255.255.0
GATEWAY=192.168.126.2  
  CentOS的网络链接方式是NAT模式,子网IP是192.168.126.0,设置IP地址为192.168.126.200
  GATEWAY的设置为虚拟网络编辑器中的NAT设置中的网关地址
DSC0003.png

  重启网络
  service network
  或重启主机
  init 6
  检查是否能够访问外网
  ping www.baidu.com

三、通过yum安装KVM
  安装kvm



yum -y install qemu-kvm
  安装管理工具



yum -y install virt-manager libvirt libvirt-python python-virtinst bridge-utils
  libvirt 是一套免费、开源的支持Linux下主流虚拟化工具的C函数库。提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python,Java等多种主流开发语言的绑定。
  它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品。
DSC0004.png

  启动,并设置开机启动项



service libvirtd start
chkconfig libvirt don
  如果不能安装或安装慢,可以换阿里开源镜像
  http://mirrors.aliyun.com/



wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  内核模块查看
  查看已载入系统的模块



lsmod | grep kvm
  [iyunv@kvm ~]# lsmod| grep kvm
kvm_intel 55464 0
kvm 345038 1 kvm_intel
  载入模块



modprobe kvm
modprobe kvm-intel

四、创建虚拟系统
  关闭防火墙
  service iptables stop
  关闭防火墙启动项
chkconfig iptables off
  创建磁盘镜像文件
  qemu-img 磁盘镜像工具
  qemu-img --help 查看帮助



create [-f fmt] [-o options] filename [size]
  fmt磁盘镜像文件格式,支持的格式有:raw cow qcow vdi vmdk cloop dmg bochs vpc vvfat qcow2 qed vhdx parallels nbd blkdebug null host_cdrom host_floppy host_device file gluster
  执行脚本:



[iyunv@kvm ~]# mkdir /kvmImg
[iyunv@kvm ~]# qemu-img create -f qcow2 /kvmImg/centos-6.8.qcow2 5G
Formatting '/kvmImg/centos-6.8.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536
  安装虚拟机
  虚拟机安装的系统为:CentOS-6.8-x86_64-minimal.iso
  先将镜像文件上传至主机的/kvmImg目录下
  virt-install 工具
  virt-install --help 查看帮助
  脚本命令:



virt-install --virt-type kvm --name centos-6.8 --ram 1024 \
--vcpus 1 \
--cdrom=/kvmImg/CentOS-6.8-x86_64-minimal.iso \
--disk /kvmImg/centos-6.8.qcow2,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6


[iyunv@kvm kvmImg]# virt-install --virt-type kvm --name centos-6.8 --ram 1024 \
> --vcpus 1 \
> --cdrom=/kvmImg/CentOS-6.8-x86_64-minimal.iso \
> --disk /kvmImg/centos-6.8.qcow2,format=qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 --noautoconsole \
> --os-type=linux --os-variant=rhel6
Starting install...
Creating domain...                                                                                 |    0 B     00:00     
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
  由于在创建脚本中指定了来宾的图形化工具为VNC --graphics vnc,listen=0.0.0.0,然后通过VNC进入虚拟机,在创建时可指定端口(参考帮助),由于没有指定端口,需要查询一下端口号。
  查看qemu-kvm虚拟机的端口号为 5900



[iyunv@kvm kvmImg]# netstat -antp|grep kvm
tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      2749/qemu-kvm      
  通过VNC进入虚拟机
DSC0005.png

  点击ok,进入系统
DSC0006.png

  然后就可以通过vnc对系统进行安装设置,安装完成后,需要重启虚拟机,点击重启
  虚拟机没了,找找虚拟机哪里去了
  查看端口查找不到



[iyunv@kvm kvmImg]# netstat -antp|grep kvm
  那虚拟机应该是关闭了,怎么查看虚拟机的状态,怎么把它启动起来哪?
  接下来需要用到virsh工具
  Virsh:基于libvirt的命令行工具(CLI)



[iyunv@kvm ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
  virsh的帮助



virsh # help
Grouped commands:
Domain Management (help keyword 'domain'):
attach-device                  attach device from an XML file
attach-disk                    attach disk device
attach-interface               attach network interface
autostart                      autostart a domain
blkdeviotune                   Set or query a block device I/O tuning parameters.
blkiotune                      Get or set blkio parameters
blockcommit                    Start a block commit operation.
blockcopy                      Start a block copy operation.
blockjob                       Manage active block operations
blockpull                      Populate a disk from its backing image.
blockresize                    Resize block device of domain.
change-media                   Change media of CD or floppy drive
console                        connect to the guest console
cpu-baseline                   compute baseline CPU
cpu-compare                    compare host CPU with a CPU described by an XML file
cpu-stats                      show domain cpu statistics
create                         create a domain from an XML file
define                         define (but don't start) a domain from an XML file
desc                           show or set domain's description or title
    destroy                        destroy (stop) a domain
detach-device                  detach device from an XML file
detach-disk                    detach disk device
detach-interface               detach network interface
domdisplay                     domain display connection URI
domhostname                    print the domain's hostname
    domid                          convert a domain name or UUID to domain id
domif-setlink                  set link state of a virtual interface
domiftune                      get/set parameters of a virtual interface
domjobabort                    abort active domain job
domjobinfo                     domain job information
domname                        convert a domain id or UUID to domain name
dompmsuspend                   suspend a domain gracefully using power management functions
dompmwakeup                    wakeup a domain from pmsuspended state
domuuid                        convert a domain name or id to domain UUID
domxml-from-native             Convert native config to domain XML
domxml-to-native               Convert domain XML to native config
dump                           dump the core of a domain to a file for analysis
dumpxml                        domain information in XML
edit                           edit XML configuration for a domain
inject-nmi                     Inject NMI to the guest
send-key                       Send keycodes to the guest
managedsave                    managed save of a domain state
managedsave-remove             Remove managed save of a domain
maxvcpus                       connection vcpu maximum
memtune                        Get or set memory parameters
migrate                        migrate domain to another host
migrate-setmaxdowntime         set maximum tolerable downtime
migrate-setspeed               Set the maximum migration bandwidth
migrate-getspeed               Get the maximum migration bandwidth
numatune                       Get or set numa parameters
reboot                         reboot a domain
reset                          reset a domain
restore                        restore a domain from a saved state in a file
resume                         resume a domain
save                           save a domain state to a file
save-image-define              redefine the XML for a domain's saved state file
save-image-dumpxml             saved state domain information in XML
save-image-edit                edit XML for a domain's saved state file
schedinfo                      show/set scheduler parameters
screenshot                     take a screenshot of a current domain console and store it into a file
setmaxmem                      change maximum memory limit
setmem                         change memory allocation
setvcpus                       change number of virtual CPUs
shutdown                       gracefully shutdown a domain
start                          start a (previously defined) inactive domain
suspend                        suspend a domain
ttyconsole                     tty console
undefine                       undefine a domain
update-device                  update device from an XML file
vcpucount                      domain vcpu counts
vcpuinfo                       detailed domain vcpu information
vcpupin                        control or query domain vcpu affinity
emulatorpin                    control or query domain emulator affinity
vncdisplay                     vnc display
Domain Monitoring (help keyword 'monitor'):
domblkerror                    Show errors on block devices
domblkinfo                     domain block device size information
domblklist                     list all domain blocks
domblkstat                     get device block stats for a domain
domcontrol                     domain control interface state
domif-getlink                  get link state of a virtual interface
domiflist                      list all domain virtual interfaces
domifstat                      get network interface stats for a domain
dominfo                        domain information
dommemstat                     get memory statistics for a domain
domstate                       domain state
list                           list domains
Host and Hypervisor (help keyword 'host'):
capabilities                   capabilities
freecell                       NUMA free memory
hostname                       print the hypervisor hostname
node-memory-tune               Get or set node memory parameters
nodecpustats                   Prints cpu stats of the node.
nodeinfo                       node information
nodememstats                   Prints memory stats of the node.
nodesuspend                    suspend the host node for a given time duration
qemu-attach                    QEMU Attach
qemu-monitor-command           QEMU Monitor Command
qemu-agent-command             QEMU Guest Agent Command
sysinfo                        print the hypervisor sysinfo
uri                            print the hypervisor canonical URI
version                        show version
Interface (help keyword 'interface'):
iface-begin                    create a snapshot of current interfaces settings, which can be later committed (iface-commit) or restored (iface-rollback)
iface-bridge                   create a bridge device and attach an existing network device to it
iface-commit                   commit changes made since iface-begin and free restore point
iface-define                   define (but don't start) a physical host interface from an XML file
iface-destroy                  destroy a physical host interface (disable it / "if-down")
iface-dumpxml                  interface information in XML
iface-edit                     edit XML configuration for a physical host interface
iface-list                     list physical host interfaces
iface-mac                      convert an interface name to interface MAC address
iface-name                     convert an interface MAC address to interface name
iface-rollback                 rollback to previous saved configuration created via iface-begin
iface-start                    start a physical host interface (enable it / "if-up")
iface-unbridge                 undefine a bridge device after detaching its slave device
iface-undefine                 undefine a physical host interface (remove it from configuration)
Network Filter (help keyword 'filter'):
nwfilter-define                define or update a network filter from an XML file
nwfilter-dumpxml               network filter information in XML
nwfilter-edit                  edit XML configuration for a network filter
nwfilter-list                  list network filters
nwfilter-undefine              undefine a network filter
Networking (help keyword 'network'):
net-autostart                  autostart a network
net-create                     create a network from an XML file
net-define                     define (but don't start) a network from an XML file
net-destroy                    destroy (stop) a network
net-dumpxml                    network information in XML
net-edit                       edit XML configuration for a network
net-info                       network information
net-list                       list networks
net-name                       convert a network UUID to network name
net-start                      start a (previously defined) inactive network
net-undefine                   undefine an inactive network
net-update                     update parts of an existing network's configuration
net-uuid                       convert a network name to network UUID
Node Device (help keyword 'nodedev'):
nodedev-create                 create a device defined by an XML file on the node
nodedev-destroy                destroy (stop) a device on the node
nodedev-detach                 detach node device from its device driver
nodedev-dumpxml                node device details in XML
nodedev-list                   enumerate devices on this host
nodedev-reattach               reattach node device to its device driver
nodedev-reset                  reset node device
Secret (help keyword 'secret'):
secret-define                  define or modify a secret from an XML file
secret-dumpxml                 secret attributes in XML
secret-get-value               Output a secret value
secret-list                    list secrets
secret-set-value               set a secret value
secret-undefine                undefine a secret
Snapshot (help keyword 'snapshot'):
snapshot-create                Create a snapshot from XML
snapshot-create-as             Create a snapshot from a set of args
snapshot-current               Get or set the current snapshot
snapshot-delete                Delete a domain snapshot
snapshot-dumpxml               Dump XML for a domain snapshot
snapshot-edit                  edit XML for a snapshot
snapshot-info                  snapshot information
snapshot-list                  List snapshots for a domain
snapshot-parent                Get the name of the parent of a snapshot
snapshot-revert                Revert a domain to a snapshot
Storage Pool (help keyword 'pool'):
find-storage-pool-sources-as   find potential storage pool sources
find-storage-pool-sources      discover potential storage pool sources
pool-autostart                 autostart a pool
pool-build                     build a pool
pool-create-as                 create a pool from a set of args
pool-create                    create a pool from an XML file
pool-define-as                 define a pool from a set of args
pool-define                    define (but don't start) a pool from an XML file
pool-delete                    delete a pool
pool-destroy                   destroy (stop) a pool
pool-dumpxml                   pool information in XML
pool-edit                      edit XML configuration for a storage pool
pool-info                      storage pool information
pool-list                      list pools
pool-name                      convert a pool UUID to pool name
pool-refresh                   refresh a pool
pool-start                     start a (previously defined) inactive pool
pool-undefine                  undefine an inactive pool
pool-uuid                      convert a pool name to pool UUID
Storage Volume (help keyword 'volume'):
vol-clone                      clone a volume.
vol-create-as                  create a volume from a set of args
vol-create                     create a vol from an XML file
vol-create-from                create a vol, using another volume as input
vol-delete                     delete a vol
vol-download                   download volume contents to a file
vol-dumpxml                    vol information in XML
vol-info                       storage vol information
vol-key                        returns the volume key for a given volume name or path
vol-list                       list vols
vol-name                       returns the volume name for a given volume key or path
vol-path                       returns the volume path for a given volume name or key
vol-pool                       returns the storage pool for a given volume key or path
vol-resize                     resize a vol
vol-upload                     upload file contents to a volume
vol-wipe                       wipe a vol
Virsh itself (help keyword 'virsh'):
cd                             change the current directory
connect                        (re)connect to hypervisor
echo                           echo arguments
exit                           quit this interactive terminal
help                           print help
pwd                            print the current directory
quit                           quit this interactive terminal
  查看帮助,使用list命令



virsh # list
Id    Name                           State
----------------------------------------------------
virsh # list --all
Id    Name                           State
----------------------------------------------------
-     centos-6.8                     shut off
  使用 list --al列出所有,查看centos-6.8状态是shut off,那接下里想办法把他启动起来
  查看帮助,使用start命令



virsh # start centos-6.8
Domain centos-6.8 started
  start命令后面参数是虚拟机名称,提示已经启动起来,然后通过vnc链接测试,可以登录系统,一个虚拟机完成简单安装。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387167-1-1.html 上篇帖子: 大数据系列(3)——Hadoop集群完全分布式坏境搭建 下篇帖子: vm12序列号
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表