Linux使用入门教程之LVM、软RAID5和KVM虚拟机
一、LVM配置
1、基本步骤:PV -> VG -> LV -> 格式化挂载使用
2、创建LVM卷
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)
pvcreate /dev/sdc1
pvextend myvg /dev/sdc1
vgdisplay #查看扩容成功
4、扩容逻辑卷LV
lvextend -L 5G /dev/myvg/mylv #-L增加5G的容量
resize2fs /dev/myvg/mylv #更新扩容的文件系统
lvdisplay #查看扩容成功
5、缩小LV
必须先卸除挂载:umount /dev/myvg/mylv
resize2fs -p /dev/myvg/mylv 5G #将文件系统缩小的指定大小
lvreduce /dev/myvg/mylv -L 5G #将逻辑卷缩小到指定大小
mount /dev/myvg/mylv /data #重新挂载使用
df -h #查看当前大小成功
6、缩小VG
VG中必须要有足够多的未分配空间(PE)应不少于要移走的物理卷的大小。
pvremove /dev/sdb1 /dev/sda1 #将/dev/sdb1数据移到/dev/sba1中
vgreduce myvg /dev/sdb1 #将/dev/sdb1从卷组中移出
pvremove /dev/sdb1 #将/dev/sdb从物理卷中移出
7、逻辑卷快照对逻辑卷进行备份和还原
当我们给逻辑卷做一个快照的时候,快照会备份逻辑卷中当时所有的数据的节点号,只是节点号,而并非真正的数据。所有快照的大小很小。当我们删除逻辑卷中的数据的时候,其实并没有删除逻辑卷中的真正数据,而只是删除了节点号。而快照中备份了节点号,所以删除了逻辑卷中的数据,在快照中依然会存在数据。
1>.备份逻辑卷
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工具备份逻辑卷快照文件:dump -0u -f /backup/snap-backup.dump /snaphot
-0u:0是完整备份,u是更新dump数据库文件时间等信息
-f:指定备份名字
2>.模拟快照和逻辑卷数据清空
umount /snaphot
lvremove /dev/myvg/testsnap #移除快照卷
umount /data
mkfs.ext4 /dev/myvg/mylv #格式化逻辑卷,这下数据彻底空了,再重新到/data
mount /dev/myvg/mylv /data
cd /data #查看数据都没有了
利用备份快照恢复数据:restore -rf /backup/snap-backup.dump
ls /data #数据数据恢复成功!
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91060p2.htm
相关阅读:
服务器软RAID和LVM的实现 http://www.linuxidc.com/Linux/2013-08/88251.htm
RAID 5下多种LVM的扩容情景 http://www.linuxidc.com/Linux/2013-05/85031.htm
LVM的综合性介绍及实现 http://www.linuxidc.com/Linux/2013-03/81482.htm
RAID阵列与LVM逻辑卷组 http://www.linuxidc.com/Linux/2013-01/78358.htm
Ubuntu下用libvirt安装KVM虚拟机时找不到/bin/qemu-KVM问题解决 http://www.linuxidc.com/Linux/2013-08/88985.htm
二、RAID磁盘阵列
在Linux系统中做软RAID,磁盘阵列的设备可以基于磁盘,也可以基于分区。
软RAID:由操作系统实现,所以要占用CPU,受OS稳定性影响,受磁盘速度接口影响。
硬RAID:使用RAID卡,不会占用系统资源,不受OS和磁盘接口影响。
现在系统中有一块sda,新添加了4块磁盘,3块做磁盘阵列设备sdb、sdc和sde,sdf一块预备盘。
1、创建RAID5
主要使用mdadm命令进行组建RAID5,没有这个命令的,需要安装mdadm。
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:磁盘阵列所使用的设备
这条命令也可以简写为: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
mkfs.ext4 /dev/md0
mkdir /raid5
mount /dev/md0 /mnt/raid5
df -h #查看是否是三块容量的70%
3、设置开机自动挂载RAID
vi /etc/fstab
/dev/md0 /raid5 ext4 defaults 0 0
重启系统,看是否能自动挂载成功!
4、模拟一块磁盘损坏,我们设置的那一块磁盘会立即替代损坏的磁盘,进行RAID重建
mdadm –manage /dev/md0 –fail /dev/sdb #这条命令是模拟/dev/sdb损坏
mdadm –detail /dev/md0 #查看faild devices坏了一块/dev/sdb
现在可以查看重建过程:cat /proc/mdadm
5、移除损坏的磁盘,加入新的磁盘
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、维护命令
关闭RAID:
umount /dev/mdo
mdadm -stop /dev/md0
开启RAID:mdadm -R /dev/md0
可以在做好的raid5上面,来创建LVM,raid0和raid1也是常用的,也要多去练习下。
7、RAID0创建命令
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所需软件
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、修改相关配置
service libvirtd start
chkconfig libvirtd on
vi /etc/libvirt/qemu.conf
vnc_listen = “0.0.0.0” #修改vnc监听所有端口
vnc_password = “123456” #设置vnc登录密码
重启系统!
3、检查kvm模块是否安装完成
lsmod |grep kvm #显示两个模块kvm_amd和kvm_intel
virsh list #检查物理虚拟化完成情况
4、网络配置,在libvirt中KVM只有两种方法:网络地址转换(NAT)和桥接模式
创建桥接模式文件: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: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,实际页面都差不多,创建虚拟机的步骤就省略了,挺简单的!
6、通过命令创建虚拟机
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…]
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>.重新启动系统。