企业经常用到的RAID+LVM管理模式的建立:
用到的软件:VMware Workstation 10
系统环境:
[root@localhost~]# cat /etc/centos-release
CentOSLinux release 7.0.1406 (Core)
[root@localhost~]# rpm -qi mdadm
Name : mdadm
Version : 3.2.6
先对磁盘做mirror,然后对整个mirror组做条带化;比如8块盘需要分成4个基组,每个基组2块盘;每个基组先做raid1,再做raid0,4条条带化。
所以:
允许所有磁盘基组中的磁盘各损坏一个,但是不允许同一基组中的磁盘同时有坏的。
优点:数据安全性好,只要不是1个条带上的2个硬盘同时坏,没有问题,还可以继续跑数据。数据恢复快。
缺点 :写性能稍微比RAID 0+1 差(读性能一样)
我的思路
在新添加的硬盘上划分4个1G的区域分别为1,2,3,5
每两个转化为一个RAID 1 卷 /dev/md{1,2}
将这两个RAID 1 卷转化为一个RAID 0卷/dev/md0
将RAID 0转化为pv,vg
之后通过lv创建自己的空间
这个空间就具有RAID 1+0的性质
我们这里添加一块用作实验的硬盘2
我们不想重启来读取新添加的硬盘,我们输入下面命令进行扫描
[root@localhost~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost~]# echo "- - -" > /sys/class/scsi_host/host2/scan
[root@localhost~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040sectors
Units= sectors of 1 * 512 = 512 bytes
Sectorsize (logical/physical): 512 bytes / 512 bytes
I/Osize (minimum/optimal): 512 bytes / 512 bytes
发现新添加的sdb
下面开始具体的实验过程
#fdisk/dev/sdb
Command(m for help): n
Partitiontype:
p primary (0 primary, 0 extended, 4 free)
e extended
Select(default p):
Usingdefault response p
Partitionnumber (1-4, default 1):
Firstsector (2048-41943039, default 2048):
Usingdefault value 2048
Lastsector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G
Partition1 of type Linux and of size 1 GiB is set
Command(m for help): n
Partitiontype:
p primary (1 primary, 0 extended, 3 free)
e extended
Select(default p):
Usingdefault response p
Partitionnumber (2-4, default 2):
Firstsector (2099200-41943039, default 2099200):
Usingdefault value 2099200
Lastsector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +1G
Partition2 of type Linux and of size 1 GiB is set
Command(m for help): n
Partitiontype:
p primary (2 primary, 0 extended, 2 free)
e extended
Select(default p):
Usingdefault response p
Partitionnumber (3,4, default 3):
Firstsector (4196352-41943039, default 4196352):
Usingdefault value 4196352
Lastsector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +1G
Partition3 of type Linux and of size 1 GiB is set
Command(m for help): n
Partitiontype:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Usingdefault response e
Selectedpartition 4
Firstsector (6293504-41943039, default 6293504):
Usingdefault value 6293504
Lastsector, +sectors or +size{K,M,G} (6293504-41943039, default 41943039):
Usingdefault value 41943039
Partition4 of type Extended and of size 17 GiB is set
将剩余的所有空间划给扩展区,之后再划分区间用l命令即逻辑盘区
此后的区间号就从5开始往后加
Command(m for help): n
Allprimary partitions are in use
Addinglogical partition 5
Firstsector (6295552-41943039, default 6295552):
Usingdefault value 6295552
Lastsector, +sectors or +size{K,M,G} (6295552-41943039, default 41943039): +1G
Partition5 of type Linux and of size 1 GiB is set
Command(m for help): p
Disk/dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units= sectors of 1 * 512 = 512 bytes
Sectorsize (logical/physical): 512 bytes / 512 bytes
I/Osize (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Diskidentifier: 0x8e9a9326
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 41943039 17824768 5 Extended
/dev/sdb5 6295552 8392703 1048576 83 Linux
/dev/sdb6 8394752 10491903 1048576 83 Linux
[root@localhost ~]# mdadm -C /dev/md1-a yes -l 1 -n 2 /dev/sdb{1,2}
mdadm:Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensurethat
your boot-loader understands md/v1.xmetadata, or use
--metadata=0.90
Continuecreating array?
Continuecreating array? (y/n) y
mdadm:Defaulting to version 1.2 metadata
mdadm:array /dev/md1 started.
[root@localhost ~]# mdadm -C /dev/md2 -a yes-l 1 -n 2 /dev/sdb{3,5}
mdadm:Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensurethat
your boot-loader understands md/v1.xmetadata, or use
--metadata=0.90
Continuecreating array?
Continuecreating array? (y/n) y
mdadm:Defaulting to version 1.2 metadata
mdadm:array /dev/md2 started.
[root@localhost ~]# mdadm -C /dev/md0 -a yes-l 1 -n 2 /dev/md{1,2}(将RAID1转化为RAID0)
mdadm:Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensurethat
your boot-loader understands md/v1.xmetadata, or use
--metadata=0.90
Continuecreating array?
Continuecreating array? (y/n) y
mdadm:Defaulting to version 1.2 metadata
mdadm:array /dev/md0 started.
[root@localhost ~]# pvcreate /dev/md0(变PV)
Physical volume "/dev/md0"successfully created
[root@localhost ~]# vgcreate first/dev/md0(变VG)
Volume group "first" successfullycreated
[root@localhost~]# lvcreate -L 1G -n data1 first
Volume group "first" hasinsufficient free space (255 extents): 256 required.
[root@localhost ~]# lvcreate -L +500M-n data1 first(划分自己想要的区域大小)
Logical volume "data1" created
[root@localhost ~]# mkfs.ext4/dev/first/data1(格式化)
mke2fs1.42.9 (28-Dec-2013)
Filesystemlabel=
OStype: Linux
Blocksize=1024 (log=0)
Fragmentsize=1024 (log=0)
Stride=0blocks, Stripe width=0 blocks
128016inodes, 512000 blocks
25600blocks (5.00%) reserved for the super user
Firstdata block=1
Maximumfilesystem blocks=34078720
63block groups
8192blocks per group, 8192 fragments per group
2032inodes per group
Superblockbackups stored on blocks:
8193, 24577, 40961, 57345, 73729,204801, 221185, 401409
Allocatinggroup tables: done
Writinginode tables: done
Creatingjournal (8192 blocks): done
Writingsuperblocks and filesystem accounting information: done
[root@localhost~]# mkdir /lvm1
[root@localhost~]# mount /dev/first/data1 /lvm1
[root@localhost~]# cd /lvm1
[root@localhostlvm1]# ll
total12
drwx------2 root root 12288 Aug 12 21:21 lost+found
挂载后即可对划分出的新空间进行使用。
做RAID 1+0,共10个条带,每个条带2个硬盘做MIRROR,如果坏了1个硬盘,没关系,其它19个硬盘还要同时工作,只要不是坏在一个MIRROR里面的,就没事。
建议,硬盘很多时,同时坏的几率就比较大,建议使用安全系数高的RAID 1+0,宁愿损失点性能(其实差不多)。
后语:
新手,如有错误,欢迎指正。