Linux的raid10搭建,卸载和扩容(虚拟机模拟,备忘)
RAID 10 是组合 RAID 1 和 RAID 0 形成的。要设置 RAID 10,我们至少需要4个磁盘。本次实践计划采用vm虚拟机搭建一个raid10,然后演示扩容和卸载raid10的操作。(扩容成6个磁盘)
raid10的优缺点:
- 提供更好的性能。
- 在 RAID 10 中我们将失去一半的磁盘容量。
- 读与写的性能都很好,因为它会同时进行写入和读取。
- 它能解决数据库的高 I/O 磁盘写操作。
根据以上说明,我们可以得出,raid10的适用应用场景为频繁读写IO操作的服务器和对数据安全比较敏感的服务器,比如mysql数据库,Oracle数据库,大数据集群这样的服务器,但因为磁盘容量为原有的一半,因此,财力方面是一个重要考量。
一,vm虚拟机添加磁盘
虚拟机为关闭状态,添加四个新磁盘,将这四个磁盘组成一个raid10软阵列。
最终就是这样的:
二,虚拟机开机,进入系统,部署raid10
[root@centos1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 79.5G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4.5G 0 lvm [SWAP]
└─centos-var 253:2 0 25G 0 lvm /var
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
(1)lsblk命令,列出所有已识别的磁盘,可以看到,系统已经识别到了sdb,sdc,sdd,sde这四个新加磁盘。
(2)因为是一个新安装的最小化虚拟机,因此,radi管理工具mdadm并没有安装,安装它!!!
[root@centos1 ~]# mdadm
-bash: mdadm: command not found
[root@centos1 ~]# yum install mdadm -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mdadm.x86_64 0:4.0-5.el7 will be installed
--> Processing Dependency: libreport-filesystem for package: mdadm-4.0-5.el7.x86_64
--> Running transaction check
---> Package libreport-filesystem.x86_64 0:2.1.11-38.el7.centos will be installed
--> Finished Dependency Resolution
(3)初始化raid10,执行以下命令:
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-e]
该命令详细参数解释:C 创建radi -a 表示所有磁盘都接受, -n表示现在这个raid是4个磁盘组成,-v 表示打印详细过程,-l 表示使用的是radi10, 后面的/dev/sd[b-e] 表示连续的磁盘序列,因为前面lsblk查出来过,确实是连续的,因此,可以以这种简化写法。
该命令的输出如下:
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 10477568K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
最后一句,表示磁盘阵列 md0已经启动。
(4)接下来,我们将该磁盘阵列 /dev/md0 格式化并挂载即可使用了,这一步之前,我们看看系统是否正确识别md0
[root@centos1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 79.5G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4.5G 0 lvm [SWAP]
└─centos-var 253:2 0 25G 0 lvm /var
sdb 8:16 0 10G 0 disk
└─md0 9:0 0 20G 0 raid10
sdc 8:32 0 10G 0 disk
└─md0 9:0 0 20G 0 raid10
sdd 8:48 0 10G 0 disk
└─md0 9:0 0 20G 0 raid10
sde 8:64 0 10G 0 disk
└─md0 9:0 0 20G 0 raid10
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
[root@centos1 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="f35584f3-c1f5-4bcd-a91b-9e6d2867c137" TYPE="xfs"
/dev/sda2: UUID="5AbNDK-CRNe-zdJj-d8u8-xKN8-dc7i-1oEdUb" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="f9973869-d686-4521-a99c-1464e48838ce" TYPE="xfs"
/dev/mapper/centos-swap: UUID="d2f2d30f-5bd2-454e-87f5-3135c613ebe1" TYPE="swap"
/dev/mapper/centos-var: UUID="5066752c-7633-48f6-b2b6-bba08707d5a7" TYPE="xfs"
/dev/sdc: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="7947db00-f12b-5577-bf67-20d5ab42c4d0" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sdd: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="05711f36-ff10-d60c-ee84-7d95037f89ee" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sde: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="b9e4a37a-6ee5-bca1-5033-93c37fc97c7e" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sdb: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="be88f763-0610-07a6-baf8-60589bb8483c" LABEL="centos1:0" TYPE="linux_raid_member"
可以看到,lsblk命令正确显示raid10,blkid命令显示 sdb-e 是磁盘阵列的成员。
(5)将md0当成一个整体的磁盘,格式化并挂载使用。
格式化
[root@centos1 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=327296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5236736, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
挂载到/mnd/md目录
[root@centos1 ~]# mount -t xfs /dev/md0 /mnt/md
[root@centos1 ~]# df -ah
Filesystem Size Used Avail Use% Mounted on
rootfs - - - - /
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
devtmpfs 3.9G 0 3.9G 0% /dev
securityfs 0 0 0 - /sys/kernel/security
tmpfs 3.9G 0 3.9G 0% /dev/shm
devpts 0 0 0 - /dev/pts
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
cgroup 0 0 0 - /sys/fs/cgroup/systemd
pstore 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/memory
cgroup 0 0 0 - /sys/fs/cgroup/devices
cgroup 0 0 0 - /sys/fs/cgroup/perf_event
cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio
cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct
cgroup 0 0 0 - /sys/fs/cgroup/blkio
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/freezer
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
cgroup 0 0 0 - /sys/fs/cgroup/pids
configfs 0 0 0 - /sys/kernel/config
/dev/mapper/centos-root 50G 953M 50G 2% /
systemd-1 - - - - /proc/sys/fs/binfmt_misc
mqueue 0 0 0 - /dev/mqueue
hugetlbfs 0 0 0 - /dev/hugepages
debugfs 0 0 0 - /sys/kernel/debug
/dev/sr0 4.3G 4.3G 0 100% /mnt/cdrom
/dev/sda1 497M 118M 380M 24% /boot
/dev/mapper/centos-var 25G 100M 25G 1% /var
tmpfs 799M 0 799M 0% /run/user/0
binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
/dev/md0 20G 33M 20G 1% /mnt/md
当然,也可以写入/etc/fstab 文件内永久挂载,我这里只是暂时挂载,重启后无挂载。
在使用blkid观察磁盘阵列,可以看到md0已经正确挂载了,当然,df -ah 命令同样可以看到,上面就已经看到了!~~~~
[root@centos1 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="f35584f3-c1f5-4bcd-a91b-9e6d2867c137" TYPE="xfs"
/dev/sda2: UUID="5AbNDK-CRNe-zdJj-d8u8-xKN8-dc7i-1oEdUb" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="f9973869-d686-4521-a99c-1464e48838ce" TYPE="xfs"
/dev/mapper/centos-swap: UUID="d2f2d30f-5bd2-454e-87f5-3135c613ebe1" TYPE="swap"
/dev/mapper/centos-var: UUID="5066752c-7633-48f6-b2b6-bba08707d5a7" TYPE="xfs"
/dev/sdc: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="7947db00-f12b-5577-bf67-20d5ab42c4d0" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sdd: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="05711f36-ff10-d60c-ee84-7d95037f89ee" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sde: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="b9e4a37a-6ee5-bca1-5033-93c37fc97c7e" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/sdb: UUID="cc11ced0-bdf3-19bf-743b-170f6c07092a" UUID_SUB="be88f763-0610-07a6-baf8-60589bb8483c" LABEL="centos1:0" TYPE="linux_raid_member"
/dev/md0: UUID="f3de15a5-24b3-409c-95e0-38b668f71eb4" TYPE="xfs"
至此,raid10的搭建就已经完成。
三,卸载刚才部署的raid10
执行以下命令(卸载挂载,停止raid10,删除raid10磁盘信息,blkid查看是否卸载干净):
[root@centos1 ~]# umount /dev/md0
[root@centos1 ~]# mdadm -S /dev/md0
[root@centos1 ~]# mdadm --misc --zero-superblock /dev/sd[b-e]
[root@centos1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 79.5G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4.5G 0 lvm [SWAP]
└─centos-var 253:2 0 25G 0 lvm /var
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
[root@centos1 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="f35584f3-c1f5-4bcd-a91b-9e6d2867c137" TYPE="xfs"
/dev/sda2: UUID="5AbNDK-CRNe-zdJj-d8u8-xKN8-dc7i-1oEdUb" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="f9973869-d686-4521-a99c-1464e48838ce" TYPE="xfs"
/dev/mapper/centos-swap: UUID="d2f2d30f-5bd2-454e-87f5-3135c613ebe1" TYPE="swap"
/dev/mapper/centos-var: UUID="5066752c-7633-48f6-b2b6-bba08707d5a7" TYPE="xfs"