首页 > 编程知识 正文

linux做raid5,linux查看raid卡型号

时间:2023-05-03 18:26:53 阅读:115266 作者:2314

Linux上的软Raid1扩展方案

系统上的RAID1配置

命令:

mdadm -D /dev/md0

可见,raid1由两个硬盘分区组成:/dev/sdb1和/dev/sdc1,处于“活动同步”状态。

通过查看/proc/mdstat文件,还可以知道/dev/md0在哪个分区上配置了raid1。

改造成RAID0 1

硬盘空间不足,需要扩展raid1。

主要想法是,更换raid1上的一个硬盘,等待raid1同步数据,然后更换raid1上的另一个小硬盘,即可获得扩展效果。

因为大硬盘很贵,放弃小硬盘是徒劳的,所以两个或多个小硬盘的组合为raid0可以提供更大的容量和更快的存储速度。

创建RAID0结构

首先,用fdisk将两台新硬盘/dev/sdd和/dev/sde分别分区为/dev/sdd1和/dev/sde1。

然后,运行以下命令创建raid0:

mdadm---create/dev/md1---- level=0----raid-devices=2/dev/sddd1/dev/SDE 1

参数说明:

--create:表示创建。

/dev/md1:是raid0的设备名称,md后的数据可以自由定义。

-设置-level=0:raid的级别。 这里的等级是0。

-设置-raid-devices=2:raid的设备数。 由于raid0由两个硬盘组成,因此此处假设为2。

/dev/sdd1 /dev/sde1:这里是配置raid0的设备,与--raid-devices的数量有关。

创建后,可以使用以下命令:

mdadm -D /dev/md1

检查/dev/md1上的raid0是否正常运行。

也可以检查/proc/mdstat文件中是否已经有md1信息。

最后修改文件/etc/mdadm/mdadm.conf,添加新的raid0,以便通电。

array/dev/md1u uid=7c60c 049336057 d 608143360 bd9 a 77 f 1336057 e 49 c 5b # uuid可能在mdadm -D /dev/md1上显示

已更换RAID1硬盘

我们首先通过命令:

mdadm---- manage/dev/md0-f/dev/SD C1

停止/dev/sdc1,使用以下命令从raid1中删除sdc1,然后加上/dev/md1 :

mdadm---- manage/dev/md0-a/dev/md1-r/dev/SD C1

然后等待同步,用命令:

mdadm -D /dev/md1

检查/dev/md1的状态是否为“活动同步”表示同步已完成。

同步完成后,也可以删除剩下的/dev/sdb1,将其更换为raid0设备。

mdadm-- manage/dev/md0-f/dev/SD B1 #模拟/dev/SDB1错误

mdadm-- manage/dev/md0-r/dev/SD B1 #删除/dev/SDB1

使mdadm---create/dev/MD2---- level=0----raid-devices=2/dev/SD B1/dev/SDC1 # SD B1和SD C1成为raid0

将mdadm-- manage/dev/MD0-a/dev/MD2 # raid 0的MD2添加到raid1的md0中

改变RAID1的容量

md1和md2同步完成后,可以更改md0的容量。

mdadm -G /dev/md0 --size=max

resize2fs /dev/md0

至此,raid1扩展完成。

改造成LVM RAID1

上面介绍了将两个raid0合并为一个raid1的raid0 1。 但是,这种结构存在缺点,在今后的使用中,raid0结构的磁盘空间将会填满,需要很重

寻找新的硬盘并重新构建raid0结构,但重新构建raid0结构会导致数据丢失,因此必须在添加到raid1后同步数据。 数据量大的话会花时间。

基于上述考虑,我们考虑使用LVM代替raid0,以便在今后扩展容量时无需重新同步数据。

什么是LVM

LVM的全名是Logical Volume Manager,中文可以翻译成逻辑假脱机管理员。 之所以被称为《卷轴》

为什么文件系统会像卷轴一样伸展和收缩呢! LVM的做法是将几个实体的partitions (或disk )作为

将大磁盘(VG )划分为软件组合中看起来独立的大磁盘,然后将大磁盘划分为可用的分区插槽(LV )。

最终可以装载和使用。 但是为什么是这样

系统可以進行 filesystem 的扩充或缩小呢?其实与一个称为 PE 的项目有关!

底下我們就得要针对这几个项目来好好聊聊!

Physical Volume, PV, 实体捲轴

我们实际的 partition 需要调整系统识别码 (system ID) 成为 8e (LVM 的识別码),然后再经过 pvcreate

的指令将他转成 LVM 最底层的实体捲轴 (PV) ,之后才能夠将這些 PV 加以利用! 调整 system ID 的方是就是透过

fdisk!

Volume Group, VG, 捲轴群组

所谓的 LVM 大磁碟就是将许多 PV 整合成这個 VG 的东西!所以 VG 就是 LVM 组合起来的大磁碟!這么想就好了。

那么这個大磁碟最着急的斑马以到多少容量呢?這与底下要说明的 PE 有关喔~因为每个 VG 最多仅能包含 65534 个 PE 而已。 如果使用 LVM

预设的参数,则一个 VG 最着急的斑马达 256GB 的容量!(参考底下的 PE 說明)

Physical Extend, PE, 实体延伸区块

LVM 预设使用 4MB 的 PE 區塊,而 LVM 的 VG 最多仅能含有 65534 个 PE ,因此预设的 LVM VG 会有

4M*65534/(1024M/G)=256G。 这个 PE 是整个 LVM 最小的储存区块,也就是说,其实我们的档案资料都是藉由写入 PE

來处理的。 簡單的說,這個 PE 就有点像文件系统里面的 block 大小。 这样说应该就比较好理解了吧?所以调整 PE 会影响到 VG

的最大容量!

Logical Volume, LV, 逻辑捲轴

最终的 VG 还会被切成 LV,这个 LV 就是最后可以被格式化使用的类似分割槽的东西!那么 LV 是否可以随意指定大小呢?

当然不可以!既然 PE 是整个 LVM 的最小储存单位,那么 LV 的大小就与在此 LV 內的 PE 总数有关。 为了方便使用者利用 LVM

来管理其系统,因此 LV 的裝置文件名通常指定为『 /dev/vgname/lvname 』的样式!

此外,我們刚刚有谈到 LVM 可弹性的变更 filesystem 的容量,那是如何办到的?其实他就是透过『交换 PE

』来进行资料转换, 将原本 LV 內的 PE 移转到其他设备中以降低 LV 容量,或将其他设备的 PE 加到此 LV 中以加大容量! VG、LV

与 PE 的关系有点像下图:

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

制作流程

透过 PV, VG, LV 的规划之后,再利用 mkfs 就可以将你的 LV

格式化成为可以利用的文件系统了!而且这个文件系统的容量在未来还能夠進行扩充或减少,

而且里面的资料还不会被影响!实在是很方便,那制作方面要如何进行呢?很简单! 整个流程由基础到最终的结果可以这样看:

如此一来,我们就可以利用 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/jobcnlv

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

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

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

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

最后

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

resize2fs /dev/md0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。