设为首页 收藏本站
查看: 2990|回复: 3

[经验分享] KVM虚拟化搭建及其KVM中LVM扩容

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-28 10:06:59 | 显示全部楼层 |阅读模式
建及其KVM中LVM扩容    前言:

            公司项目方最近有两台物理服务器系统分别为CentOS 7.2。需要部署KVM虚拟化,第一台服务器A需要虚拟出三台虚拟机(均为CentOS 7.2系统),服务器B上需要虚拟出三台CentOS 7.2 系统和两台windows server2012 系统。其中六台CentOS 7.2 虚拟机需要部署我们自己的平台,两台windows分别部署客户的平台。下面来为大家说一下KVM虚拟化的搭建,以及创建虚拟机的两种办法,及其操作使用。


    KVM小课补:

            今天这一章内容是利用linux内核的一个模块kvm,并使用一些辅助工具来搭建虚拟机,完成和esxi类似的操作(vsphere虚拟化平台,底层需要ESXI,使用vcenter管理esxi,从而实现了虚拟机的迁移,备份,高可用等操作,但是安装成本很高,需要购买正版。),实现linux虚拟化。KVM直接整合到了linux内核,因此在性能、安全性、兼容性、稳定性上都有好的表现。我们都知道,使用虚拟化技术可以为公司节约成本,可以在一台物理机上运行多个系统,充分利用物理机的资源。

    搭建KVM虚拟化:
        准备环境:

        建议使用一台物理机来配置kvm环境,需要cpu支持intel VT等硬件虚拟化功能。
        检查虚拟化:
        cat /proc/cpuinfo | grep vmx
        确认有结果输出。则表示该机器支持或已配置intel VT。vmx(intel)或svm(AMD) 支持虚拟技术。
        配置yum源:
       #首先需要把你要使用CentOS系统上传到服务器。
        #挂载centos镜像
        mount -o loop  CentOS-7-x86_64-Everything-1511.iso   /mnt/cdrom

        #修改yum仓库地址
        cat  yum.repo.d/my.repo  
        [base]
        name=mycentos
        baseurl=file:///mnt/cdrom
        gpgckeck=0
        enabled=1
        gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

        安装软件包:
        yum install libvirt qemu-kvm virt-install bridge-utils qemu-img virt-manager libguestfs
        启动服务,并设置为开机自启动:
        systemctl start libvirtd

        理论:  设置kvm网络
        在libvirt中运行kvm网络有两种方法:nat和bridge,默认是nat(用户模式),用户模式可以访问外网,但是无法从外部访问虚拟机网络,所以用的不是很多,我们一般做的服务器都需要外网的访问,所有我们多数情况采用桥接模式(bridge),这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机。

        调整网络配置,建立虚拟网桥。配置之前,需要先备份一下,要修改的文件。
        配置网桥br0,让eth0或者em1桥接到br0上。
        #cat ifcfg-eth0

         DEVICE=eth0
            BOOTPROTO=none
            ONBOOT=yes
            HOTPLUG=yes
            TYPE=Ethernet
            PEERDNS=no
            BRIDGE=br0
            NM_CONTROLLED=no
  
        #cat ifcfg-br0

         DEVICE=br0
            BOOTPROTO=static
            ONBOOT=yes
            TYPE=Bridge
            IPADDR=xxx.xxx.xxx.xxx
            NETMASK=xxx.xxx.xxx.xxx
            GATEWAY=xxx.xxx.xxx.xxx
            PEERDNS=no
            DELAY=0
            STP=yes
            NM_CONTROLLED=no

下面就是创建虚拟机:
        有两种方法:

       第一种:创建虚拟机

        #准备虚拟机ISO文件
        /tmp/CentOS-7-x86_64-Everything.iso


        #创建一块虚拟磁盘
        qemu-img create -f qcow2 /var/lib/libvirt/images/server-1.qcow2 750G

        #启动镜像安装虚拟机
        virt-install --virt-type kvm --name server-1 --ram 16384 --vcpu 8 \
        --disk /var/lib/libvirt/images/server-1.qcow2,format=qcow2 \
        --network bridge=br0,model=virtio \
        --graphics vnc,listen=0.0.0.0 --noautoconsole \
        --os-type=linux --os-variant=rhel7 \
        --cdrom=/tmp/CentOS-7-x86_64-Everything.iso

        #使用vnc登入虚拟机,安装系统。
        #系统安装完成之后,需要更改虚拟机的配置
        virsh  edit server-1


  <memory unit='KiB'>33554432</memory>                                     #在条件允许的情况下,一般建议将内存提升至32G
  <currentMemory unit='KiB'>33554432</currentMemory>
  <vcpu placement='static'>16</vcpu>                                              #在条件允许的情况下,一般建议将CPU提升至16核

<interface type='bridge'>                                                        #修改网桥模式,在type='bridge'修改成网桥
      <mac address='52:54:00:17:fa:65'/>
      <source bridge='br0'/>                                                     #修改网桥模式,在source brige='br0'修改成br0网桥
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

###使用vnc-server连接宿主机5900端口,然后安装系统。
列出所有虚拟机
virsh list --all
查看虚机vnc端口
virsh vncdisplay server-1

:0
0则表示5900+0就是虚机的vnc端口
安装完毕后关闭虚机

    第二种方法是建立在第一种发放之上的。将现有的虚拟机server-1.xml和server-1.qcow2文件,拷贝几份(自己需要几个虚拟机拷贝几份),拷贝之前需要关闭虚拟机,使用命令如下:
virsh shutdown  server-1 关闭虚拟机
virsh undefine server-1   把server-1.xml文件undefine下来

修改sever-1.xml文件,修改如下:
需要修改name 、uuid、    memory、vcpu、mac地址(因为是cp的文件,所以必须修改mac地址,不修改会造成虚拟机之间无法通信)等等。修改文件必须虚拟机关机并undefine下来,不然修改不生效。

修改完成后,在使用virsh define server-1.xml ,并 virsh start server-1 启动。
使用virsh list --all看一下虚拟机的状态。如果是running状态表示已经启动了。

以上是两种方法:第二种建议要细心,思路清晰,不然请选择第一种方法。


    创建Windows虚机
准备文件:
1.准备iso镜像文件
/tmp/windows2008R2-x64.iso
2.准备virtio驱动iso

创建虚拟磁盘
# qemu-img create -f raw /tmp/win1.raw 40G

启动虚拟
# virt-install  --name win1 --ram 2048 --vcpus 2 \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 --noautoconsole \
  --disk path=/tmp/win1.raw,device=disk,bus=virtio \
  --cdrom=/tmp/virtio-win.iso \
  --disk path=/tmp/windows2012-x64.iso,device=cdrom \
  --os-type windows --os-variant win1

###使用vnc-server连接宿主机5900端口,然后安装系统。
列出所有虚拟机
virsh list --all
查看虚机vnc端口
virsh vncdisplay server-1

:0
0则表示5900+0就是虚机的vnc端口

安装系统过程中
默认情况下Windows检测不到可用的安装磁盘。 需要加载驱动,选择光驱的viostor目录,按照系统版本加载相应的驱动
如手动安装加载磁盘驱动:浏览 E:\viostor\xxx\xxxx\viostor.inf
完成系统安装,使用Administrator登录系统。

注意:
由于服务器在机房,我远程连接,和机房服务器不在一个网,需要使用跳板机连接物理服务器来部署KVM的,要想使用VNC客户端工具,需要在物理服务器上开启VNC proxy功能,命令如下:
iptables  -I INPUT 1  -p tcp   --dport 5900:5910 -j ACCEPT

使用VNC连接虚拟机修改完IP地址等信息后,需要立刻关闭VNC的5900端口,防止被黑客扫描攻击。
iptables -D  INPUT   -p tcp  --ports 5900:5990  -j ACCEPT

查看防火墙规则:
iptables -L -n

KVM上虚拟机LVM扩容流程及其命令:
逻辑卷扩容根分区的方法:
1:首先新加一块磁盘,连接至主机。开机,进入系统。使用root登录,运行fdisk,将新加的磁盘分区(此处省略)。我们这里假设将全部磁盘容量只分一个区,分区为/dev/sdb1;
2:创建pv: pvcreate /dev/sdb1
3:扩展VG:vgextend  centos  /dev/sdb1
4:运行vgdisplay ,查看扩展后的VG,如果显示容量增加,表示,VG扩展成功;
5:扩展LV: lvextend -L + n(M,或G) /dev/mapper/centos-root
6  xfs_growfs /dev/VolGroup/lv_root

修改文件位置:
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/data/vm/huge.img'/>
      <target dev='vdb' bus='virtio'/>
    </disk>

create一个:

qemu-img create -f qcow2 /data/vm/huge.img 500G
简单报错分析:
1、几台KVM服务器上虚拟机无法通信,检查方法:
      1)检查一下虚拟机本身的网卡信息,IP是否正确、是否MAC地址冲突、等等。
      2)检查是否有默认路由,创建默认路由命令格式如下:
            ip r add default 【xxxxip地址】 via dev br0
      3)检查网卡是否为桥接模式,使用命令brctl show查看,是否桥接是错误
         例如:KVM配置的br0桥接,使用命令brctl show查看,是否虚拟机使用的是br0 或者virbr0模式。
                    如果在NAT方式下,会使用virbr0进行通信,以允许虚拟机访问网络服务。
                    目前我们环境是桥接,所有没有作用。查看和禁用:
                    # virsh net-list
                    # virsh net-destroy default
                    # virsh net-undefine default
                    # service libvirtd restart
                        或者
                    #ifconfig virbr0 down
                    #brctl delbr virbr0
      4)如网络不通,可以查看是否为混杂模式,命令如下:

            设置混杂模式命令:

            ifconfig 【网卡名称】 promisc
            使用ifconfig看看是否设置为混杂模式。



KVM虚拟化常用命令操作汇总:
virsh list --all   查看虚拟机状态
virsh start kvm01  开机
virsh shutdown kvm01 关机(虚拟机需开启acpid服务)
virsh destroy kvm01 强制开机
virsh suspend kvm01 挂起虚拟机
virsh resume kvm01 恢复挂起的虚拟机
virsh snapshot-create kvm01  建虚拟机快照(建快照镜像格式要为qcow2格式)
virsh snapshot-list kvm01   查看虚拟机快照
virsh snapshot-revert kvm01 1489386302 恢复虚拟机快照
virsh edit kvm01 编辑配置文件
virsh autostart kvm01 设置物理机开机自动启动虚拟机
virsh dumpxml kvm01 > kvm01.xml 导出虚拟机配置文件
/etc/libvirt/qemu/   虚拟机配置文件默认目录
virsh undefine kvm01 删除一个虚拟机(会一起删除配置文件,镜像不删除)
virsh define /etc/libvirt/qemu/kvm01.xml 重新定义一个虚拟机
virt-clone -o kvm01 -n kvm02 -f  /var/lib/libvirt/images/kvm02.img 克隆虚拟机(/etc/udev/rules.d/70-persistent-net.rules启动后删除)
qemu-img info kvm01 查看虚拟机镜像格式

qemu-img convert -f raw -O qcow2 kvm01.img kvm01.qcow2 转换虚拟机镜像格式
qemu-img create -f qcow2  /var/lib/libvirt/images/kvm01-1.img 20G  新建虚拟机镜像磁盘
virsh attach-disk kvm01 /var/lib/libvirt/images/kvm01-1.img vdb --cache=none --subdriver=qcow2 在线添加虚拟机镜像硬盘



运维网声明 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-403573-1-1.html 上篇帖子: Create Windows7 Virtual Machine Image for OpenStack 下篇帖子: KVM详解

尚未签到

发表于 2017-9-6 10:21:06 | 显示全部楼层
打开网站出现未找到模板错误

今天有客户让博主帮其在windows面板下创建网站,博主按照步骤一步一步的装好后,发现网站怎么样都打不开,自己检查了诸多问题,还是不行,抓耳挠腮一下午,偶然间删除IIS重装后居然好了!下次朋友们遇到这个问题可以试一下哦,说不定是IIS的问题哦!

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

累计签到:1151 天
连续签到:358 天
发表于 2018-1-26 11:51:33 | 显示全部楼层
Thanks for sharing!!!!!

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

回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
发表于 2020-4-24 10:21:20 | 显示全部楼层
谢谢,学习一下

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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