RHCE学习<10>LVM分区管理、软RAID和KVM虚拟机

  1. 云栖社区>
  2. 博客>
  3. 正文

RHCE学习<10>LVM分区管理、软RAID和KVM虚拟机

李振良 2016-05-05 17:47:16 浏览1795
展开阅读全文

一、LVM配置

1、基本步骤:PV -> VG -> LV -> 格式化挂载使用

132147466.png

2、创建LVM卷

1
2
3
4
5
pvcreate /dev/sdb1
vgcreate myvg /dev/sdb1 #加-s指定PE块大小,默认是4M
lvcreate -n mylv -L 10G myvg #-L指定逻辑卷的大小
mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /data

查看命令:pvdisplay,vgdisplay,lvdisplay

3、扩容卷组

使用fdisk /dev/sdc分区并指定8e类型(Linux LVM)

1
2
3
4
pvcreate /dev/sdc1
vgextend myvg /dev/sdc1
vgdisplay #查看扩容成功
移除pv使用:lvreduce myvg /dev/sdc1

4、扩容逻辑卷LV

1
2
3
lvextend -L 5G /dev/myvg/mylv #-L增加5G的容量
resize2fs /dev/myvg/mylv #更新扩容的文件系统
lvdisplay #查看扩容成功

5、缩小LV

1
2
3
4
5
umount /dev/myvg/mylv  #必须先卸除挂载逻辑卷
#resize2fs -p /dev/myvg/mylv 5G #将文件系统缩小到5G
lvreduce /dev/myvg/mylv -L 5G #将逻辑卷缩小5G
mount /dev/myvg/mylv /data #重新挂载使用
df -h #查看当前大小成功

6、缩小VG

VG中必须要有足够多的未分配空间(PE)应不少于要移走的物理卷的大小。

1
2
3
pvremove /dev/sdb1 /dev/sda1 #将/dev/sdb1数据移到/dev/sba1中
vgreduce myvg /dev/sdb1 #将/dev/sdb1从卷组中移出
pvremove /dev/sdb1 #将/dev/sdb从物理卷中移出

7、逻辑卷快照对逻辑卷进行备份和还原

当我们给逻辑卷做一个快照的时候,快照会备份逻辑卷中当时所有的数据的节点号,只是节点号,而并非真正的数据。所有快照的大小很小。当我们删除逻辑卷中的数据的时候,其实并没有删除逻辑卷中的真正数据,而只是删除了节点号。而快照中备份了节点号,所以删除了逻辑卷中的数据,在快照中依然会存在数据。

1>.备份逻辑卷

1
2
3
4
5
mount /dev/myvg/mylv /data
cp /usr/local//data #复制数据到/data下,准备模拟用
lvcreate -n testsnap -L 50M -p r -s /dev/myvg/mylv #创建逻辑卷快照名为testsnap,大小是50M,-p r为只读的,防止使用,-s统计备份所需空间
mkdir /snap
mount /dev/myvg/mylv /snap #可以直接挂载快照,现在/snap的数据和/data的数据是一样的

使用dump工具备份逻辑卷快照文件

1
dump -0u -f /backup/snap-backup.dump /snaphot

-0u:0是完整备份,u是更新dump数据库文件时间等信息

-f:指定备份名字

2>.模拟快照和逻辑卷数据清空

1
2
3
4
5
6
umount /snaphot
lvremove /dev/myvg/testsnap #移除快照卷
umount /data
mkfs.ext4 /dev/myvg/mylv #格式化逻辑卷,这下数据彻底空了,再重新到/data
mount /dev/myvg/mylv /data
cd /data #查看数据都没有了

利用备份快照恢复数据:

1
2
restore -rf /backup/snap-backup.dump
ls /data #数据数据恢复成功!

二、RAID磁盘阵列

在Linux系统中做软RAID,磁盘阵列的设备可以基于磁盘,也可以基于分区。

软RAID:由操作系统实现,所以要占用CPU,受OS稳定性影响,受磁盘速度接口影响。

硬RAID:使用RAID卡,不会占用系统资源,不受OS和磁盘接口影响。

现在系统中有一块sda,新添加了4块磁盘,3块做磁盘阵列设备sdb、sdc和sde,sdf一块预备盘。

1、创建RAID5

主要使用mdadm命令进行组建RAID5,没有这个命令的,需要安装mdadm。

1
mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdb /dev/sdc /dev/sde

参数说明:

--create:创建raid

--auto=yes /dev/md0:创建软raid的设备名是md0

--level=5:创建raid的级别是5

--raid-devices=3:磁盘阵列用的磁盘数

--spare-devices=1:预备盘数

/dev/sdb /dev/sbc /dev/sde:磁盘阵列所使用的设备

这条命令也可以简写为:

1
2
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb /dev/sdc /dev/sde
mdadm --detail /dev/md0 #查看raid详细信息,组建raid需要一点时间,耐心等候

raid信息保存在/proc/mdadm,可以用cat /proc/mdadm查看raid运行状况

2、格式化并挂载创建的RAID

1
2
3
4
mkfs.ext4 /dev/md0
mkdir /raid5
mount /dev/md0 /mnt/raid5
df -h #查看是否是三块容量的70%

3、设置开机自动挂载RAID

1
2
vi /etc/fstab
/dev/md0 /raid5 ext4 defaults 0 0

4、模拟一块磁盘损坏,我们设置的那一块磁盘会立即替代损坏的磁盘,进行RAID重建

1
2
3
mdadm --manage /dev/md0 --fail /dev/sdb #这条命令是模拟/dev/sdb损坏
mdadm --detail /dev/md0 #查看faild devices坏了一块/dev/sdb
cat /proc/mdadm  #现在可以查看重建过程

5、移除损坏的磁盘,加入新的磁盘

1
2
3
mdadm --manage /dev/md0 --remove /dev/sdb #移除损坏磁盘/dev/sdb
mdadm --manage /dev/md0 --add /dev/sdg #添加新磁盘/dev/sdg
mdadm --detail /dev/md0 #查看现在/dev/sdg成为了备用磁盘

6、维护命令

1
2
3
umount /dev/md0   #关闭RAID
mdadm -stop /dev/md0
mdadm -R /dev/md0  #开启RAID

可以在做好的raid5上面,来创建LVM,raid0和raid1也是常用的,也要多去练习下。

7、RAID0创建命令

1
mdadm -C /dev/md0 -a yes -L 0 -n 2 /dev/sdb /dev/sdc

三、搭建KVM虚拟机

RHCL6 KVM支持条件:rhel-server-6.0_x64和cpu支持虚拟化

查看cpu是否支持虚拟化技术:cat /proc/cpuinfo |grep "vmx svm"

svm:AMD处理器虚拟化支持,vmx:intel处理器虚拟化支持

1、安装KVM所需软件

1
yum install -y qemu-kvm qemu-img python-virtinst bridge-utils libvirt virt-manager

软件包说明

qemu-kvm:kvm虚拟化模块

qemu-img:使用qemu创建磁盘,启动虚拟机等

python-virtinst:用来记录创建vm时的xml文件

bridge-utils:网络支持工具

libvirt:虚拟机管理工具,使用virsh来管理虚拟机

virt-manager:图形页面管理虚拟机工具

2、修改相关配置

1
2
3
4
5
6
service libvirtd start
chkconfig libvirtd on
vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0" #修改vnc监听所有端口
vnc_password = "123456" #设置vnc登录密码
重启系统!

3、检查kvm模块是否安装完成

1
2
lsmod |grep kvm #显示两个模块kvm_amd和kvm_intel
virsh list #检查物理虚拟化完成情况

4、网络配置,在libvirt中KVM只有两种方法:网络地址转换(NAT)和桥接模式

创建桥接模式文件:

1
2
3
4
5
6
7
8
9
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOORPROTO=static
ONBOOT=yes
IPADDR=192.168.0.200
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8

配置eth0:

1
2
3
4
5
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no #设备eth0是否被NetworkManager管理工具托管

配置完成,重启网卡:service network restart

查看桥接网络:brctl show

5、通过virt-manager图形页面创建虚拟机、管理本地KVM等可以装一个VNC远程桌面来操作KVM主机,我这里使用的CentOS6,实际页面都差不多,创建虚拟机的步骤就省略了,挺简单的!

164104505.png

164315505.png

6、通过命令创建虚拟机

1
virt-install --name win2003 --ram 512 --vcpus=1 --disk path=/home/kvm/img/win2003.img,size=20 --cdrom /var/iso/Win2003.sp2.iso --vnclisten=192.168.0.205 --graphics vnc,password=123456,port=5910, --network bridge=br0 --force --autostart

7、virsh常用命令

格式:virsh [command] [args...]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
help #显示该命令的说明
quit #结束 virsh,回到 Shell
connect #连接到指定的虚拟机服务器
Create #启动一个新的虚拟机
destroy #强制关闭一个虚拟机
start #开启(已定义的)非启动的虚拟机
define #从 XML 定义一个虚拟机
undefine #取消定义的虚拟机
dumpxml #转储虚拟机的设置值
list #列出虚拟机
reboot #重新启动虚拟机
save #存储虚拟机的状态
restore #回复虚拟机的状态
suspend #暂停虚拟机的执行
resume #继续执行该虚拟机
dump #将虚拟机的内核转储到指定的文件,以便进行分析与排错
shutdown #关闭虚拟机
setmem #修改内存的大小
setmaxmem #设置内存的最大值
setvcpus #修改虚拟处理器的数量

8、配置虚拟机在宿主主机每次启动后自动启动

1>.应用程序――系统工具――虚拟系统管理器

2>. 双击要设置的虚拟机

3>. 在“查看”菜单中选择“详情”

4>. 在“boot options”选项中勾选“start virtual machine on host boot up”选项

5>. 单击“应用”

6>. 修改/etc/sysconfig/libvirt-guests文件:ON_BOOT=ignore

9、kvm虚拟机克隆后网卡无法启动解决办法:

1>.修改/etc/udev/rules.d/70-persistent-net.rules文件,删除第一个网卡记录,并将第二个的NAME="eth1"改为NAME="eth0"

2>.如果在/etc/sysconfig/network-scripts/ifcfg-eth0中有配置网卡信息的话,如:#HWADDR="00:0C:29:C8:1A:92",将其注释

3>.重新启动系统。


网友评论

登录后评论
0/500
评论
李振良
+ 关注