软raid配置简单操作
分以下几步:
- 停止已有的md
- 磁盘分区
- 创建软raid虚拟磁盘
- 格式化磁盘
- 挂载磁盘
停止已有的md
通过 ls -al /dev/md*,观察是否已有 mdxxx 的字样,如果有则需要先清掉。
all_disk=`fdisk -l|grep '1.8 T'|awk '{print $2}'|cut -d":" -f1`
part_disk=`fdisk -l|grep 'Linux raid autodetect'|awk '{print $1}'`
umount /dev/md/cache
md_list=`ls -al /dev/md/*|awk '{print $9}'`
for i in $md_list
do
mdadm -S $i
done
mdadm --misc --zero-superblock $part_disk
rm -f /etc/mdadm.conf
rm -f /etc/mdadm/mdadmin.conf
磁盘分区
通过 fdisk -l,观察每块nvme磁盘是否都有一个分区,且该分区的类型是 Linux raid autodetect。如果不是则需要配置。
fdisk /dev/nvme?n1
# 下列操作需要依据需求来做,一般通过n创建分区,通过fd指定类型,通过w写入数据。
创建软raid虚拟磁盘
这一步不难,如果前面做好的话。
blkid $part_disk
/sbin/mdadm --create cache --auto yes --level 0 -n`echo $part_disk|wc -w` $part_disk
上面的指令出现了五个问号,都是数字。其中n后面的数字是指一共几个磁盘,nvme后面的指盘符。
创建完成后需要写入到配置文件。
echo DEVICE $part_disk >> /etc/mdadm.conf
mdadm -Evs >> /etc/mdadm.conf
格式化磁盘
上述操作完成后得到了一个容量比较大的虚拟磁盘,需要格式化它。
mkfs.ext4 /dev/md/cache
挂载磁盘
格式化会花费一些时间,之后可以将它挂载到指定目录。
mkdir -p /opt/cache
mount /dev/md/cache /opt/cache
chown -R Development:Development /opt/cache
echo "UUID=`blkid /dev/md/cache|cut -d'"' -f2` /opt/cache ext4 defaults,nofail,discard 0 0" >> /etc/fstab
最后通过 lsblk 查看结果。
指令合集
#移除md
remove_md(){
umount /opt/cache/
md_list=`ls -al /dev/md/*|awk '{print $9}'`
for i in $md_list
do
mdadm -S $i
done
md_list=`ls -al /dev/md*|awk '{print $10}'`
for i in $md_list
do
mdadm -S $i
done
mdadm --misc --zero-superblock $part_disk
rm -f /etc/mdadm.conf
rm -f /etc/mdadm/mdadmin.conf
}
#磁盘分区表操作
set_disk(){
CHECK_DISK_EXIST=`/sbin/fdisk -l 2> /dev/null | grep -o "$DISK"`
[ ! "$CHECK_DISK_EXIST" ] && { echo "Error: Disk is not found !"; exit 1;}
CHECK_DISK_PARTITION_EXIST=`/sbin/fdisk -l 2> /dev/null | grep -o "${DISK}p[1-9]"`
[ ! "$CHECK_DISK_PARTITION_EXIST" ] || { echo "WARNING: ${CHECK_DISK_PARTITION_EXIST} is Partition already !"; continue;}
/sbin/fdisk $DISK<<EOF &> /dev/null
n
p
1
t
fd
wq
EOF
partx -a $DISK
}
# 磁盘分区
partition_disk(){
for DISK in $all_disk
do
set_disk
done
echo "Disk Partition Create OK!"
}
# 创建软 raid
create_md(){
/sbin/mdadm --create cache --auto yes --level 0 -n`echo $part_disk|wc -w` $part_disk
echo DEVICE $part_disk >> /etc/mdadm.conf
/sbin/mdadm -Evs >> /etc/mdadm.conf
cat /etc/mdadm.conf
}
# 格式化磁盘
mkfs_md(){
mkfs.ext4 /dev/md/cache
}
# 挂载
mount_md(){
mkdir -p /opt/cache
mount /dev/md/cache /opt/cache/
chown -R Development:Development /opt/cache
echo "UUID=`blkid /dev/md/cache|cut -d'"' -f2` /opt/cache ext4 defaults,nofail,discard 0 0" >> /etc/fstab
}
all_disk=`fdisk -l|grep '1.8 T'|awk '{print $2}'|cut -d":" -f1`
part_disk=`fdisk -l|grep 'Linux raid autodetect'|awk '{print $1}'`
remove_md
partition_disk
create_md
mkfs_md
mount_md