江城决的小站 KVM安装 所有KVM为桥接模式 centos安装KVM 由于公司gitlab备份均为VM主机,都在同一台宿主机上,一旦宿主机出故障,所有gitlab备份将会受影响。找前台申请了一台PC机,I516G,但是硬盘只有128G,所以只能保存一天的备份,所以备份监控很重要。为了不造成资源浪费,而且公司有新旧两套gitlab,而且两台gitlab的dock和gitlab的版本不同,所以需要在不同环境上进行部署。于是准备在这台PC机搭建KVM供两套gitlab备份使用。 方法一: 1。安装准备 查看硬件是否支持虚拟化 egrep(vmxsvm)proccpuinfo 注意:要有vmx或svm的标识才行。vmx标识intel,svm代表AMD。 2。安装KVM 由于Linux内核已经将KVM收录了,在安装系统时已经加入了KVM,我们只需要在命令行模式下启用KVM即可 启用KVM模块: modprobekvm lsmodgrepkvm 3。安装KVM所需组件 yuminstallyvirtlibvirtbridgeutilsqemuimgqemukvm 安装完成后启动libvirtd服务: servicelibvirtdstart 查看是否安装正确: 使用网桥管理命令查看: brctlshow 将NetworkManager服务关闭,开机启动也关闭: chkconfigNetworkManageroff serviceNetworkManagerstop 然后在创建桥接设备及关联网卡到桥接设备上:注意:如果无法桥接成功可能是没有安装桥接工具(yuminstallbridgeutils) virshifacebridgeenp2s0br0 注释:enp2s0为本地IP网卡 brctlshow注:查看桥接设备 方法二: yuminstallyqemukvmlibvirtclientvirtinsatallvirtmanagervirtviewerbridgeutils yuminstalllibvirtvirtinstall yuminstallyqemukvmlibvirtclientvirtinsatallvirtmanagervirtviewerbridgeutilslibvirt 配置KVM的网桥模式 〔rootkevin〕cdetcsysconfignetworkscripts 〔rootopenstacknetworkscripts〕cpifcfgeno1ifcfgbr0 〔rootopenstacknetworkscripts〕catifcfgbr0 TYPEBridge这一行修改为Bridge PROXYMETHODnone BROWSERONLYno BOOTPROTOnone DEFROUTEyes IPV4FAILUREFATALno IPV6INITno IPV6AUTOCONFyes IPV6DEFROUTEyes IPV6FAILUREFATALno IPV6ADDRGENMODEstableprivacy NAMEbr0修改设备名称为br0 UUIDfdbad04fdae3440e8a8b01d6a7bc9fe0这一行注释 DEVICEbr0修改设备为br0 ONBOOTyes IPADDR192。168。10。210 PREFIX24 GATEWAY192。168。10。1 DNS18。8。8。8 〔rootopenstacknetworkscripts〕catifcfgeno1 TYPEEthernet BRIDGEbr0添加这一行 PROXYMETHODnone BROWSERONLYno BOOTPROTOnone DEFROUTEyes IPV4FAILUREFATALno IPV6INITno IPV6AUTOCONFyes IPV6DEFROUTEyes IPV6FAILUREFATALno IPV6ADDRGENMODEstableprivacy NAMEeno1 UUIDfdbad04fdae3440e8a8b01d6a7bc9fe0 DEVICEeno1 ONBOOTyes IPADDR192。168。10。210注释掉这几行 PREFIX24 GATEWAY192。168。10。1 DNS18。8。8。8 重启网卡服务 〔rootopenstacknetworkscripts〕systemctlrestartnetwork 如果vncserver不是启动的:1 rmrftmp。Xnlock KVM新建虚拟机 先创建一台模板机,做好虚拟化后其他VM直接进行克隆创建。 KVM虚拟机设置开机自启动 方法1、在kvm图形化管理工具里面设置,让kvm虚拟机随着宿主机一起启动。 方法2、把KVM虚拟机的XML配置文件做一个软连接到etclibvirtqemuautostart目录下。 lnsvetclibvirtqemurh8vm1。xmletclibvirtqemuautostart 方法3、通过命令virsh设置开机启动 virshautostartrh8vm1设置虚拟机开机自动启动 virshautostartdisablerh8vm1设置取消虚拟机自动启动 给kvm中的虚拟机磁盘扩容 一、镜像扩容 在宿主机进行操作: qemuimginfogitlab43backup。qcow2 qemuimgresizegitlab43backup。qcow260G 重启虚拟机 virshshutdowngitlab43backup virshstartgitlab43backup 二、虚拟机磁盘扩容 进入该虚拟机,使用命令fdiskl查看磁盘信息 新建一个分区:fdiskdevvda 输入n(addanewpartition,添加一个分区)然后p(primary,主分区)最后w保存退出。 创建完成后可以看到已经多了一个vda3分区: 将分区格式改成8e(即lvm格式) 重启虚拟机! pvcreatedevvda3创建物理卷 vgcreateamfslvm2devsda3创建卷组 查看卷组:vgscan 合并卷组:vgmergecentosamfslvm2 查看卷组是否合并:pvdisplay 执行:lvresizeL60Gdevmappercentosroot给这个路径添加磁盘容 xfsgrowfsdevmappercentosroot识别分区大小 命令行模式使用KVM 1创建卷 qemuimgcreatefqcow2template。qcow2100G qemuimgcreatefqcow2centos7。6template。qcow2100G 这样就创建了一个100G的动态扩展的qcow2格式的磁盘(这里的100G只是磁盘的最大值,没有被写入数据前只有不到200k大小) 查看卷信息可以用下面的命令,disksize才是其实际占用的宿主机磁盘大小 2创建虚拟机 准备镜像文件: 2。1命令行创建虚拟机 virtinstallnamecentos7。6templateram4096vcpus2locationoptCentOS7x8664Minimal1810。isodiskpathoptcentos7。6template。qcow2,size100networkbridgebr0graphicsnoneconsolepty,targettypeserialextraargsconsoletty0consolettyS0 命令说明: name指定虚拟机的名称 memory指定分配给虚拟机的内存资源大小 maxmemory指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源 vcpus指定分配给虚拟机的CPU核心数量 maxvcpus指定可调节的最大CPU核心数量 ostype指定虚拟机安装的操作系统类型 osvariant指定系统的发行版本 location指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL diskpath指定虚拟硬盘所存放的路径及名称,size则是指定该硬盘的可用大小,单位是G bridge指定使用哪一个桥接网卡,也就是说使用桥接的网络模式 graphics指定是否开启图形 console定义终端的属性,targettype则是定义终端的类型 extraargs定义终端额外的参数 2设置时区 设置内网固定IP地址: 全部配置完成后,输入b开始安装 2。2使用XML安装 centos虚拟机名称 1024虚拟机最大内存上线 1024虚拟机当前内存 2cpu数量 hvm os features destroy restart destroy usrlibexecqemukvm这个位置一般不动,,这是你的kvm安装位置 qcow2镜像盘位置 disk iso文件 disk interface serial console devices domain 2。3虚拟机网络设置 catetcsysconfignetworkscriptsifcfgeth0 TYPEEthernet PROXYMETHODnone BROWSERONLYno BOOTPROTOstatic DEFROUTEyes IPV4FAILUREFATALno IPV6INITyes IPV6AUTOCONFyes IPV6DEFROUTEyes IPV6FAILUREFATALno IPV6ADDRGENMODEstableprivacy NAMEeth0 UUID7d02dc3b876d4d2e93a101716b5eb694 DEVICEeth0 ONBOOTyes IPADDR10。0。0。174 PREFIX24 GATEWAY10。0。0。1 DNS1114。114。114。114 3KVM相关命令 查看所有虚拟机(包含已停止状态) virshlistall 开机 virshstartkvmname 关机 virshshutdownkvmname 强制关机 virshdestroykvmname 开机自动开机 virshautostartkvmname 删除虚拟机 virshundefinekvmname 暂停,挂起虚拟机 virshsuspendkvmname 暂停状态还原 virshresumekvmname 设置虚拟机开机自动启动 virshautostart 设置虚拟机开机取消自动启动 virshautostartdisable 4将home分区磁盘转移到根目录 安装完后发现磁盘空间有46G划分给home了,需要全部转移到 以root用户直接登陆(这是为了解决home目录被占用的情况,也可以使用其它方式终止home被占用,不过这样最直接) 卸载home umounthome 删除home所在的lv逻辑卷 lvremovedevmappercentoscentos7home vgdisplay查看卷组可用空间 扩展root所在的lv lvextendL45Gdevmappercentoscentos7root 扩展root文件系统 xfsgrowfsdevmappercentoscentos7root 安装完成后对服务器进行优化 5克隆虚拟机 查看虚拟机 virshlistall 查看虚拟机配置文件 lletclibvirtqemu 查看虚拟机磁盘文件 virshshutdowncentos7。6template 开始克隆虚拟机 virtcloneocentos7。6templatenshowdockvm2foptshowdoc。qcow2 选项: o:原虚拟机名 n:新生成的虚拟机名 f:新生成的虚拟机的磁盘文件的路径 virshstartshowdockvm2 进入虚拟机 virshconsoleshowdockvm2 复制磁盘文件和配置文件克隆 cptemplate。qcow2showdoc。qcow2