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

[经验分享] linux安装KVM-linux

[复制链接]

尚未签到

发表于 2019-2-18 09:55:12 | 显示全部楼层 |阅读模式
  KVM作为linux内核的一部分,有着无法比拟的优势,相信KVM的大范围企业应用指日可待。
  一、KVM宿主服务器环境配置

  •   查看CPU是否支持VT技术
      cat /proc/cpuinfo | egrep 'vmx|svm' 
      flags : fpu vme de pse tsc msr pae mce cx8 apic
      mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
      ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts
      rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
      xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
      如果执行指令后有类似返回,则证明CPU支持VT
  •   安装KVM组件
      yum groupinstall Virtualization 
      yum groupinstall "Virtualization Platform" 
      如果使用桥接模式需安装bridge-utils
      yum install -y bridge-utils
  •   检查KVM模块加载
      lsmod | grep kvm 
      kvm_amd                37434  4  
      kvm                   292815  1 kvm_amd 
      如果执行指令后有类似返回,则证明KVM模块加载正常,否则检查BIOS中是否开启了CPU VT支持
  •   安装virtsh virt-install 管理工具
      yum install libvirt-client python-virtinst 
  • 配置网络桥接  参考:http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface
      5.1安装tunctl:
      #yum install -y tunctl
      5.2 禁用网络管理器:
      #chkconfig NetworkManager off  ##和桥接有冲突,要关闭
      #service NetworkManager stop
      5.3 修改eth0为物理网口,br0为桥接网口配置文件:
      #cat ifcfg-br0
      DEVICE=br0
      TYPE=Bridge
      BOOTPROTO=static
      IPV6INIT=no
      ONBOOT=yes
      IPADDR=192.168.1.66(真实ip地址)
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
      DELAY=0
cat ifcfg-eth0
  DEVICE=eth0
  TYPE=Ethernet
  BRIDGE=br0
  BOOTPROTO=none
  IPV6INIT=no
  ONBOOT=yes
  附加说明:这里配置成桥接方式,实际上本机的数据包发送是通过br0发送的,br0的TYPE是Bridge,其它的信息跟配置一个物理网卡一样, 本机的eth0通过桥接到br0(通过BRIDGE指定)进行通信,它根本不需要配置IP信息,实际上数据发送还是通过本机的物理网卡。
  5.4 最后重启网络
service network restart
  5.5 查看桥接网络
brctl show

  bridge name bridge>  br0     8000.0021cc6b6f2c   no      eth0
  virbr0      8000.525400ac7ebe   yes     virbr0-nic
  接口eth0通过br0进行桥接。birbr0-nic通过virbr0进行桥接,这个是默认的设置,当使用NAT时使用。
  二、虚拟机安装
  1. 建立虚拟机磁盘镜像文件
  qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势
  qemu-img create -f qcow2 test.qcow2 20G //建立qcow2格式磁盘文件
  qemu-img create -f raw test.raw 20G  //建立raw格式磁盘文件
  qemu-img info test.qcow2 //查看已经创建的虚拟磁盘文件

  • 建立虚拟机实例  创建1G内存、2核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机
      virt-install --name rhel6 \   #指定虚拟机名
      --boot network,cdrom,menu=on \   #指定启动方式
      --ram 1024 --vcpus=2 \   #内存,cpu
      --os-variant=rhel6 \    #指定系统类型
      --accelerate \ 
      --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \  #指定安装镜像路径
      --disk path=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio \ 
      --bridge=br0,model=virtio --mac=54:52:00:01:79:e9 \ 
      --vnc --vncport=5991 --vnclisten=0.0.0.0.  #开启vnc并指定vnc端口
  创建8G内存、4核CPU、双网卡,磁盘和网络驱动使用virtio的linux虚拟机
  virt-install --name rhel5.2 \ 
  --boot network,cdrom,menu=on \ 
  --ram 8192 --vcpus=4 \ 
  --os-variant=rhel6 \ 
  --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \ 
  --disk path=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio \ 
  --bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \
  --bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \
  --vnc --vncport=5991 --vnclisten=0.0.0.0 
  创建1G内存、1核CPU、单网卡,磁盘和网络驱动使用virtio的windows虚拟机
  virt-install --name win2k3 \ 
  --ram 1024 --vcpus=1 \ 
  --os-variant=win2k3 \ 
  --accelerate \ 
  --cdrom=/troodon/ISO/Windows/2003/win2k3sp1.iso \ 
  --disk path=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio \ 
  --bridge=br0,model=virtio \ 
  --vnc --vncport=5991 --vnclisten=0.0.0.0 
  一些解释:
  virtio驱动对于磁盘和网络I/O性能有很大提升(默认qemu驱动),linux虚拟机安装完成后自动加载virtio驱动,windows虚拟机需要下载virtio驱动后安装
  --mac参数指定网卡mac地址,如果不指定系统会自动分配
  虚拟机配置文件存储在 /etc/libvirt/qemu 目录,配置文件为XML格式
  开机自启动的虚拟机配置可以通过链接放到 /etc/libvirt/qemu/autostart 目录,配置文件为XML格式

  • 虚拟机安装指令 virt-install 简介  --name 指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。 
      --ram 分配内存大小,安装完成后可以用 virsh 调整。 
      --vcpus 分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用 virsh 调整。 
      --disk 指定虚拟机镜像, size 指定分配大小单位为G。 
      --network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接。 
      --os-variant 指定操作系统类型,此处使用的是标准Linux 2.6,其他的可以通过 man virt-install 详细查看。 
      --accelerate 加速,具体什么原理还不太清楚。 
      --cdrom 指定安装镜像所在。 
      --vnc 启用VNC远程管理,一般安装系统都要启用。 
      --vncport 指定 VNC 监控端口,默认端口为 5900,端口不能重复。 
      --vnclisten 指定 VNC 绑定IP,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接。 
      --extra-args='console=tty0 console=ttyS0,115200n8‘ 默认开启console终端。否则不能使用console接口。安装过程未使用这个参数,就需要到系统中手动调整配置。
  三、虚拟机管理

  •   虚拟机管理指令 virsh 简介
      virsh   list 列出当前虚拟机列表,不包括未启动的
      virsh   list --all 列出所有虚拟机,包括所有已经定义的虚拟机
      virsh   start domain-name 启动指定虚拟机
      virsh   shutdown domain-name 停止指定虚拟机 
      virsh   reboot domain-name 重新启动指定虚拟机
      经测试reboot和shutdown需要在虚拟机上安装acpid服务方能使用。
      yum install -y acpid  &&/etc/init.d/acpid start
      virsh   autostart domain-name 指定虚拟机开机自动启动 
      virsh    destroy    centos  强制关机
      virsh   undefined   centos   删除虚拟机配置(删除后需手动删除img文件)
      virsh   attach-interface 增加网卡命令
      virsh   attach-disk   增加磁盘命令
      virt-clone  -o node1 -n node2 -f /home/3158cdn/images/node2.img  --connect=qemu:///system
  • 调整虚拟机配置  2.1调整内存
      如果maxmem等于mem需重设maxmem,重设实例的maxmem要shutdown  实例
      virsh  setmaxmem  node1  --size 8G #需先设置maxmem
      virsh  start node1
      virsh  setmem node1 --size 8G
      然后再修改虚拟机主配置
      virsh edit node1 调整相应mem值。否则重启会导致设置失效。
      经测试vi直接编辑好像不起作用, 使用virsh edit node1才能生效。
  2.2调整cpu
  Virsh edit node1  直接修改cpu count值。重启即可生效
  网络带宽的控制
  virsh edit node1
  
  
  
  
  
  
  
  
  
  
  流量控制的单位为k字节。
  为KVM客户机添加virsh console支持
  在KVM中安装了一个RHEL6.1,启动virsh命令想通过console命令连接至客户机的终端,结果输入命令后终端卡在这个状态:
  virsh # console test Connected to domain test
  Escape character is ^]
  敲任何键都没反应,求助万能的Google。原来想通过console连接客户机终端还要在客户机上做相应设置,大致如下:
  添加ttyS0:
  echo “ttyS0″ >>/etc/securetty
  在/etc/grub.conf文件中为内核添加参数:
  console=ttyS0
  在/etc/inittab中添加agetty:
  S0:12345:respawn:/sbin/agetty ttyS0 115200
  重启客户机:
  reboot
  此时,再次尝试console命令可以正常使用:
  virsh # console testConnected to domain test
  Escape character is ^]

  Red Hat Enterprise Linux Server>  login:
  四 错误
  1)错误提示:
  localhost# virsh start node1
  error: Failed to start domain node1
  error: Unable to read from monitor: Connection reset by peer
  解决方法 virsh managedsave-remove node1
  2) 为KVM客户机添加virsh console支持
  在KVM中安装了一个RHEL6.1,启动virsh命令想通过console命令连接至客户机的终端,结果输入命令后终端卡在这个状态:
  virsh # console test Connected to domain testEscape character is ^]
  敲任何键都没反应,求助万能的Google。原来想通过console连接客户机终端还要在客户机上做相应设置,大致如下:
  添加ttyS0:
  echo “ttyS0″ >>/etc/securetty
  在/etc/grub.conf文件中为内核添加参数:
  console=ttyS0
  在/etc/inittab中添加agetty:
  S0:12345:respawn:/sbin/agetty ttyS0 115200
  重启客户机:
  reboot
  此时,再次尝试console命令可以正常使用:

  virsh # console testConnected to domain test Escape character is ^]Red Hat Enterprise Linux Server>

运维网声明 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-673828-1-1.html 上篇帖子: linux下安装SVN-linux 下篇帖子: Linux RPM查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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