首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Linux停软Raid1扩容方案

2012-06-28 
Linux下软Raid1扩容方案如上图所示,VG 內的 PE 会分给虚线部分的 LV,如果未来这个 VG 要扩充的話,加上其他

Linux下软Raid1扩容方案

如上图所示,VG 內的 PE 会分给虚线部分的 LV,如果未来这个 VG 要扩充的話,加上其他的 PV 即可。 而最重要的 LV 如果要扩充的话,也是透过加入 VG 內沒有使用到的 PE 來扩充的!

如此一来,我们就可以利用 LV 这个玩意来进行系统的挂载了。不过,你应该要觉得奇怪的是, 那么我的资料写入这个 LV 时,到底他是怎么写入硬盘当中的?其实,依据写入机制的不同,而有两种方式:

1.线性模式 (linear):假如我将 /dev/hda1, /dev/hdb1 这两个 partition 加入到 VG 当中,並且整个 VG 只有一个 LV 时,那么所谓的线性模式就是:当 /dev/hda1 的容量用完之后,/dev/hdb1 的硬盘才会被使用到, 这也是我们所建议的模式。

2.交错模式 (triped):那什么是交错模式?很简单啊,就是我将一笔资料拆成两部分,分別写入 /dev/hda1 与 /dev/hdb1 的意思,感觉上有点像 RAID 0!如此一来,一份资料用两颗硬盘来写入,理论上,读写的效能会比较好。

基本上,LVM 最主要的用处是在实现一个可以弹性调整容量的文件系統上, 而不是在建立一个效能为主的硬盘上,所以,我们应该利用的是 LVM 可以弹性管理整个 partition 大小的用途上,而不是着眼在效能上的。因此, LVM 预设的读写模式是线性模式! 如果你使用 triped 模式,要注意,当任何一个 partition 『归天』时,所有的资料都会『损毁』的! 所以,不是很适合使用这种模式啦!如果要强调效能与备份,那么就直接使用 RAID 即可, 不需要用到 LVM !

创建LVM

假设现在还是/dev/sdb1跟/dev/sdc1组成raid1,有两块新硬盘/dev/sdd和/dev/sde,用fdisk分别对这两块新硬盘进行分区为/dev/sdd1和/dev/sde1,并且system id为8e。

创建PV

用以下命令对sdd1跟sde1分区创建PV:

pvcreate /dev/sdd1 /dev/sde1

然后用pvscan命令查看是否创建成功。用pvdisplay可以查看更详细的信息。

创建VG

用以下命令把sdd1和sde1变成一个VG:

vgcreate -s 16M jobcnvg /dev/sdd1 /dev/sde1参数说明:-s 16M:为PE的大小,这就决定这个VG的最大容量为16M*65534/1024=1T,这个值以后可以通过vgchange来更改。jobcnvg:为VG的名字,可以随便取。/dev/sdd1 /dev/sde1:要加入的设备。

然后用vgscan命令查看是否创建成功。用vgdisplay可以查看详细信息。

创建LV

通过以下命令,把上面创建的jobcnvg,分出一个LV:

lvcreate -l 356 -n jobcnlv jobcnvg参数说明:-l 356:是PE的个数,用vgdisplay可以看到jobcnvg的"Free  PE"数量。-n jobcnlv:是LV的名字,可以随便取。jobcnvg:VG的名字。

然后用lvscan命令查看是否创建成功。用lvdisplay可以查看详细信息。

格式化LV

通过以上步骤,LVM就创建完成了,如果需要挂载使用,就得格式化:

mkfs -t ext3 /dev/jobcnvg/jobcnlv
LV扩容

增加一块硬盘/dev/sdf,通过fdisk把它格式化为/dev/sdf1,system id为8e。

创建PV:

pvcreate /dev/sdf1

扩充VG:

vgextend jobcnvg /dev/sdf1

扩大LV:

lvresize -l +179 /dev/vbirdvg/vbirdlv参数说明:-l +179:增加的PE数量,+号表示增加,-号表示减少,无符号表示设定为多少。resize2fs /dev/vbirdvg/vbirdlv
替换RAID1中的硬盘

替换raid1中的硬盘可参考raid0+1中的替换硬盘,把换出来的硬盘再建成/dev/jobcnvg1/jobcnlv1再放上去,就组成了LVM+RAID1的结构了。

对LVM+RAID1中的LVM扩容

由于扩容的时候LV是不能被占用的,所以这里有两种方法对LV进行扩容。

方案1

先停掉RAID1的服务:

mdadm -S /dev/md0

然后把/dev/jobcnvg/jobcnlv和/dev/jobcnvg1/jobcnlv1进行扩容。

然后再启动RAID1的服务:

mdadm -A /dev/md0
方案2

不用停掉RAID1的服务,先把其中一块LVM移出RAID1:

mdadm -f /dev/md0 /dev/jobcnvg/jobcnlvmdadm -r /dev/md0 /dev/jobcnvg/jobcnlv

对jobcnlv进行扩容后,再接上去:

mdadm --add /dev/md0 /dev/jobcnvg/jobcnlv

同理把jobcnlv1也按以上步骤扩容。

最后

无论用哪种方案,扩容后,都要把RAID1的容量更新:

resize2fs /dev/md0

热点排行