目录
- Ubuntu使用mdadm工具创建RAID 0
- 1. RAID 0 简介
- 2. Ubuntu下mdadm工具安装
- 3. 创建Raid
- 1)查看系统磁盘
- 2)创建RAID
- 3)查看创建结果
- 4)格式化RAID
- 5)挂载RAID
- 6)开机自动挂载RAID
- 4. 保存RAID信息到配置文件
- 4. 磁盘损坏替换
- 5. 数据恢复
- 6. Raid磁盘迁移(从旧主机迁移到新主机)
- 7. 删除Raid
Ubuntu使用mdadm工具创建RAID 0
1. RAID 0 简介
创建RAID 0 至少需要两块以上的硬盘,它将两块以上的硬盘合并成一块,数据连续地分割在每块盘上。 因为带宽加倍,所以读/写速度加倍, 但RAID 0在提高性能的同时,并没有提供数据保护功能,只要任何一块硬盘损坏就会丢失所有数据。因此RAID 0 不可应用于需要数据高可用性的关键领域,只适用于需要提高磁盘读写性能的领域。
2. Ubuntu下mdadm工具安装
Linux下创建软RAID需要依赖工具mdadm,部分Ubuntu发行版系统默认没有自带mdadm工具,需要自行安装。
安装命令如下:
sudo apt install mdadm
3. 创建Raid
1)查看系统磁盘
创建前可以通过如下命令查看可用的磁盘:
sudo lsblk
运行结果(下面结果中的sdb和sdc两个磁盘是我们准备创建RAID 0的两块盘):
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 59.5G 0 part
├─vgubuntu-root 253:0 0 58.6G 0 lvm /
└─vgubuntu-swap_1 253:1 0 980M 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
sdc 8:32 0 30G 0 disk
sr0 11:0 1 1024M 0 rom
2)创建RAID
创建命令如下:
tony@kylin:~$ sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
运行结果:
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
3)查看创建结果
查看命令如下:
cat /proc/mdstat
运行结果:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdb[0]
62879744 blocks super 1.2 512k chunks
unused devices: <none>
从上面的输出结果中可以看到md0已经创建成功。
4)格式化RAID
创建完成后会创建一个虚拟设备:/dev/md0,我们可以通过如下命令格式化:
sudo mkfs.ext4 /dev/md0
运行结果:
mke2fs 1.45.5 (07-Jan-2020)
创建含有 15719936 个块(每块 4k)和 3932160 个inode的文件系统
文件系统UUID:1aaeec0c-d918-4e91-802e-f8f2e9645b56
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
正在分配组表: 完成
正在写入inode表: 完成
创建日志(65536 个块) 完成
写入超级块和文件系统账户统计信息: 已完成
5)挂载RAID
手动挂载命令如下(手动挂载重启后会失效,下文会介绍如何设置开机自动挂载):
cd /mnt # 切换到/mnt路径
sudo mkdir raid0 # mnt为root权限,因此需要使用sudo来创建
sudo mount /dev/md0 raid0/
sudo chown -R tony:tony raid0 # 为方便使用可将目录改为当前用户权限
完成挂载后,我们查看当前文件系统,运行命令:
df -h
运行结果:
文件系统 容量 已用 可用 已用% 挂载点
udev 5.9G 0 5.9G 0% /dev
tmpfs 1.2G 3.2M 1.2G 1% /run
/dev/mapper/vgubuntu-root 58G 18G 38G 32% /
tmpfs 5.9G 46M 5.8G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 5.9G 0 5.9G 0% /sys/fs/cgroup
/dev/sda1 511M 4.0K 511M 1% /boot/efi
tmpfs 1.2G 92K 1.2G 1% /run/user/1000
/dev/md0 59G 53M 56G 1% /mnt/raid0
从上面结果的最后一行可以看到我们创建的 md0 已经被挂载到了 /mnt/raid0 ,其空间大小为原始的两块磁盘的2倍。
6)开机自动挂载RAID
查询 md0 设备的UUID,命令如下:
sudo blkid /dev/md0
运行结果:
/dev/md0: UUID="1aaeec0c-d918-4e91-802e-f8f2e9645b56" TYPE="ext4"
上面的结果中的UUID后面的字符串即为我们要获取的内容,然后通过 vim 打开配置文件:
sudo vim /etc/fstab
具体配置如下,将下面这行添加到打开的文件末尾即可:
UUID=1aaeec0c-d918-4e91-802e-f8f2e9645b56 /mnt/raid0 ext4 defaults 0 0
4. 保存RAID信息到配置文件
完成上述命令后为保证下次重启RAID配置自动生效,还需要将RAID信息保存到配置文件。
运行如下命令查看RAID详情:
sudo update-initramfs -u
sudo mdadm --detail --scan
运行结果:
ARRAY /dev/md0 metadata=1.2 name=kylin:0 UUID=9692c01a:85861e21:53389a0e:6b4915ad
参照上面配置fstab文件的方法,使用 vim 打开文件 /etc/mdadm/mdadm.conf ,将上面命令的输出结果添加到文件末尾即可。
4. 磁盘损坏替换
5. 数据恢复
6. Raid磁盘迁移(从旧主机迁移到新主机)
7. 删除Raid
- 查看并记录包含在raid中的磁盘信息,后面要用到:
sudo mdadm -D /dev/md0
- umount 之前组建的raid
umount /dev/md0
- 停止raid设备
mdadm -S /dev/md0
- 删除raid里的所有磁盘
mdadm --misc --zero-superblock /dev/sda
mdadm --misc --zero-superblock /dev/sdb
- 删除raid和开启启动配置文件中的配置,删除创建时候添加的对应信息
/etc/mdadm.conf
/etc/fstab