Kvm虚拟化的一种打包及部署方案(采用tar包,lvm方式)
Kvm虚拟化的一种打包部署方案(采用tar包,lvm方式)
–-–-–-2016年终总结 一
毕业之后跟师兄学到的第一块主要内容,理解花了不少时间。期间经历了shell的入门、linux基础知识入门、对系统启动原理的了解等。
之前的学习方向不是这个,辛苦师兄~和自己了~~T_T
镜像制作基于centOS 6.x,采用打包压缩方式。
镜像部署采取lvm、解压方式部署
目录
1 镜像制作
2 宿主机配置
3 镜像部署
1 镜像制作
第一步:官方方案安装centOS6.x、配置yum、关闭selinux
第二步:打包镜像
a.根目录下新建一个打包目录,example_dir,进入该目录目录中
mkdir /example_dir && cd /example_dir
b.同步根目录下除dev proc syslost example_dir home目录之外的文件夹到example_dir目录下
rsync –a $DIR /example_dir/
c. 创建dev proc syshome四个目录
d.修改/etc/sysconfig/network文件
NETWORKING=yes HOSTNAME=xxx”
e.清空系统、bash、yum相关日志文件
f. 制作该目录的一个压缩包
tar -zcvf /OS.tgz .
2 宿主机配置
镜像部署主要为三个方面的内容:配置存储、配置网络、配置kvm及libvirt组件、部署镜像
存储和网络均需在宿主机上配置。需要配置网桥访问、配置lvm卷。
2.1 网络的配置
kvm虚拟机的网络访问可以通过宿主机配置网桥实现。配置网桥采用修改网络配置文件方式较快。网络配置文件位于目录/etc/sysconfig/network-scripts/目录下。
首先,修改当前使用网卡的配置文件,添加bridge=bridge_name,删去IP、网关、掩码配置。
之后,在该目录下添加网桥配置文件
DEBICE=bradge_name ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=ip_address NETMASK=xxx GATEWAY=xxx
关闭iptables
chkconfig iptables off
2.2 lvm配置
首先对磁盘进行分区。选择合适分区创建PV(物理卷)
pvcreate /dev/sdxn
然后创建VG(卷组)
vgcreate $vg_name /dev/sd$x$n
2.3 配置kvm组件
安装kvm、libvirt-pythonlibvirt
yum install -y kvm libvirt-python irqbalance libvirt
配置开机启动
chkconfig libvirtd on
2.4 配置完成
上述配置重启后生效
reboot
3 镜像部署
镜像部署的整个步骤大致为:使用lvm创建一块磁盘;磁盘分区,分为3个部分,启动分区、交换分区以及实际磁盘分区;将磁盘挂载到临时目录;将打包的镜像解压到根目录区;调整镜像根目录下配置文件;使用grub配置启动分区;宿主机上生成kvm配置文件;启动kvm虚拟机
3.1 创建磁盘及分区
使用lvm创建一块磁盘作为部署虚拟机的空间
lvcreate -L ${disk_usage}G $vg_name -n$kvm_name
parted -s/dev/mapper/${vg_name}-${kvm_name} mklabel msdos
创建分区
fdisk /dev/mapper/${vg_name}-${kvm_name}
首先创建启动分区,256M大小即可;然后创建交换分区,目前内存足够大,交换分区可以较小,1-4G;剩下的空间作为实际磁盘分区;创建完毕后将启动分区添加可启动标签,将交换分区的分区类型设置为82。
分区完毕后生效
kpartx -a /dev/mapper/${vg_name}-${kvm_name}
partprobe /dev/mapper/${vg_name}-${kvm_name}
建立文件系统
mkfs.ext4 /dev/mapper/${vg_name}-${kvm_name}p1
mkfs.ext4 /dev/mapper/${vg_name}-${kvm_name}p3
创建分区卷标
e2label /dev/mapper/${vg_name}-${kvm_name}p1/boot
e2label /dev/mapper/${vg_name}-${kvm_name}p3/
mkswap -L “SWAP” “/dev/mapper/${vg_name}-${kvm_name}p2”
3.2 解包镜像
将之前创建的分区挂载到临时目录
mkdir /tmp/install && mount /dev/mapper/${vg_name}-${kvm_name}p3/tmp/install
mkdir /tmp/install/boot && mount /dev/mapper/${vg_name}-${kvm_name}p1/tmp/install/boot
进入目录并解压镜像
cd /tmp/install tar -zxpmf ~/OS.tgz
3.3 修改镜像配置文件
网络
>cat /tmp/install/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=$IP_ADDRESS NETMASK=$NETMASK ONBOOT=yes
>cat /tmp/install/etc/sysconfig/network NETWORKING=yes HOSTNAME=$HOSTNAME GATEWAY=$GATEWAY
文件系统
>cat /tmp/install/etc/fstab #centOS6 LABEL=//ext4defaults11 LABEL=/boot/bootext4defaults12 LABEL=SWAPswapswapdefaults00 …….tmpfs devpts sysfs proc
>cat /tmp/install/etc/fstab #centOS7 LABEL=//xfsdefaults11 LABEL=/boot/bootxfsdefaults12 LABEL=SWAPswapswapdefaults00
访问权限
/tmp/install/root/.ssh/authorized_keys /tmp/install/etc/shadow
启动
/tmp/install/boot/grub/grub.conf #centOS6 /tmp/install/boot/grub2/grub.cfg #centOS7 7需添加配置root=/dev/sda3
3.4 生成kvm配置文件
/root/kvm-name.xml配置虚拟机硬件、ip等信息
配置文件结构为
domain -uuid -name #虚拟机名称 -memory #内存大小 -vcpu #cpu核数 -sysinfo #bios 设备序列号等 -os #系统版本 启动设备等 -feature #系统特性 acpi apic pae等 -on_poweroff #关机命令 -on_reboot #重启命令 -device #设备信息 --emulator #指定使用的模拟器 --disk #指定磁盘 --interface #网络连接 --serial #串行设备 --console #控制台 --graphics #图形终端
配置基本信息,及处理器、内存等
<uuid>$uuid</uuid> <name>$kvm_name</name> <memory unit='MiB'>4096</memory> <currentMemory unit='MiB'>4096</currentMemory> <vcpu placement='static'>4</vcpu>
配置磁盘
<disk type='block' device='disk'>
<driver name='qemu'type='raw' cache='none' io='native'/>
<source dev='/dev/mapper/${vg_name}-${kvm_name}'/>
<target dev='hda'bus='virtio'/>
</disk>
配置网络
<interface type='bridge'> <mac address='$kvm_mac'/> <source bridge='$bridge_name'/> <model type='virtio'/> </interface>
配置终端
<serial type='pty'> <sourcepath='/dev/pts/1'/> <target port='0'/> <aliasname='serial0'/> </serial> <console type='pty'> <target type='serial'port='0'/> </console>
配置vnc
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'> <listen type='address'address='0.0.0.0'/> </graphics>
详细配置参见http://libvirt.org/formatdomain.html
3.5 使用grub生成引导扇区
centOS6配置方式如下
echo “(hd0) /dev/sda” >/tmp/install/boot/grub/device.map
echo “(hd1) /dev/mapper/${vg_name}-${kvm_name}”>> /tmp/install/boot/grub/device.map
/sbin/grub-install --root-directory=/tmp/install/dev/mapper/${vg_name}-${kvm_name} --no-floppy
centOS7的实现方式较繁琐,需要切换根目录至临时目录,执行grub2-install,核心命令如下
ptgdatadir=${kvm_boot_grub2_dir}
grub2-install --force --skip-fs-probe --grub-mkdevicemap ${kvm_boot_grub2_dir}device.map'(hd0)'
3.6 清理
umount /tmp/install/boot
umount /tmp/install
kpartx -d /dev/mapper/${vg_name}-${kvm_name}
3.7 启动kvm
virsh define /root/kvm_name.xml virsh start $kvm-name
Kvm虚拟化的一种打包及部署方案(采用tar包,lvm方式)的更多相关文章
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)
继下面三篇文章完成了kvm虚拟化管理平台webvirtmgr环境的部署安装:kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)kvm虚拟化管理平台WebVirtMgr部署-完 ...
- kvm虚拟化平台搭建入门
KVM虚拟化有两种网络模式:1)Bridge网桥模式2)NAT网络地址转换模式Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. 环境: 本次实验要开启VMWare中对应Ce ...
- Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)
前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件. 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack ...
- KVM虚拟化平台环境部署
一:安装依赖包 二:配置网卡 三:配置环境 实验环境: KVM01 192.168.200.10 关闭防火墙及相关的安全机制 [root@KVM01 ~]# systemctl stop fire ...
- Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)
下载hudson ,安装部署http://hudson-ci.org/ 将下载的hudson-3.3.3.war放到tomcat的webapps目录下并启动tomcat,输入地址访问 点击Instal ...
- Linux 部署KVM虚拟化平台
简单介绍 KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Lin ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(0)
打算部署kvm虚拟机环境,下面是虚拟化部署前的一些准备工作: 操作系统环境安装1)修改内核模式为兼容内核启动[root@ops ~]# uname -aLinux openstack 2.6.32-4 ...
随机推荐
- 启动springjar
java -jar cms-exporter-0.0.1-SNAPSHOT.jar --spring.config.location=classpath:./config
- 基础知识(C#语法、数据库SQL Server)回顾与总结
前言 已经有大概一个多月没有更新博客,可能是开始变得有点懒散了吧,有时候想写,但是又需要额外投入更多的时间去学习,感觉精力完全不够用啊,所以为了弥补这一个多月的潜水,决定写一篇,衔接9月未写博客的空缺 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--第五天
一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 学号 成员 贡献比 201421123001 廖婷婷 15% 201421123002 翁珊 16% 201421123004 ...
- 201521123091 《Java程序设计》第12周学习总结
Java 第十一周总结 第十一周的作业. 目录 1.本章学习总结 2.Java Q&A 3.码云上代码提交记录及PTA实验总结 4.课后阅读 1.本章学习总结 1.1 以你喜欢的方式(思维导图 ...
- 201521123083《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- 201521123053《Java设计与程序》第六周学习总结
---恢复内容结束--- 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但 ...
- 学号:201521123116 《java程序设计》第一周学习总结
#1. 本章学习总结了解了班级的纪律和期末成绩组成.本周重点学习了java语言的特点具有简单性和结构中立.明白了jdk是java开发人员使用的一种工具,以及编写一个java程序的所需步骤,懂得了jdk ...
- 201521123110《Java程序设计》第1周学习总结
1.第一周学习总结 `本周开始了对java的初次学习接触,Java是一门新的编程语言不同于C,由于有了c的基础,对于Java的理解和学习也相对从前学C更容易些. 也学习了Java的诞生发展以及运用包括 ...
- 基于注解方式实现Aop
开启注解扫描 <context:component-scan base-package="aopSpring"></context:component-scan& ...
- MUI开发记录
最近很久没有更新博客了,因为一直在学习前端h5 手机app的开发.曾经一度觉得自己css和js学得不错,进入到前端领域后才发现水很深~ HUuilder使用安卓模拟器 安卓模拟器有很多,我这里以夜神模 ...