总体流程:
初始化擦除磁盘 -> 建立磁盘池配置文件 -> warpdrive挂磁盘池
具体步骤:
1、准备两块磁盘(如dev/sdb1、dev/sdc1),用wipefs命令擦除磁盘。
wipefs -a /dev/sdb1
wipefs -a /dev/sdc1
【随笔|linux下配置磁盘池可能出现的问题及解决办法】
如果擦除失败则可用dd命令暴力初始化,但在用dd命令之前请务必将两块磁盘unmount掉,否则你的磁盘会瞬间爆炸,直接到64Z空间的大小。umount掉dev/sdb1、dev/sdc1后,执行下列命令:
dd if=/dev/zero of=/dev/sdb1 bs=512 count=2048
dd if=/dev/zero of=/dev/sdc1 bs=512 count=2048
2、建立磁盘池配置文件
# gold.yml文件
"name": "gold"
"driverName" : "devicemapper"
"thinPool":
"fileSystem" : "ext4"
"type" : "Linear"
"devices":
- "/dev/sdb1"# silver.yml文件
"name": "silver"
"driverName" : "devicemapper"
"thinPool":
"fileSystem" : "ext4"
"type" : "Linear"
"devices":
- "/dev/sdc1"
目前建议配置存储池驱动:devicemapper 。它支持xfs和ext4两种文件系统。在type属性里我们可以选择磁盘池存储格式,有Linear,Stripe,SoftRaid1,SoftRaid5。
Linear格式写入单块磁 盘,效率较高,最少需要一块磁盘;
Stripe要求配置多块盘,写入效率高 但是安全性低,最少需要两块磁盘;
SoftRaid1代表Raid1方式,安全性高但是空间利用率低,最少需要两块磁盘;
SoftRaid5代表Raid5方式,可保证数据安全性,同时确保一定的空间利用率,最少需要三块磁盘。
因为我们这里是配两个磁盘池,每个磁盘池仅有一块磁盘,故直接指定存储格式为Liner即可。
3、执行配置命令。
warpdrive pool create -f {gold.yml路径}
warpdrive pool create -f {silver.yml路径}
如果只有一块磁盘,且无法umount的时候
如果我们仅有一块磁盘,但想配两块磁盘池,则可通过fdisk将磁盘分为为两个区,再挂载,具体操作:
文章图片
先将当前分区删除,这样整个磁盘空间就全腾出来了,接着new两个分区,保存。
文章图片
格式化新建的两个分区/dev/sdc1、/dev/sdc2。
文章图片
文章图片
加下来再正常操作即可。
报create pv /dev/sdx failed:exit status5错:
报错如下:
文章图片
原因:磁盘没有完全被擦除。
解决方案:dd命令
dd if=/dev/zero of=/dev/sdc1 bs=512 count=2048
dd if=/dev/zero of=/dev/sdc2 bs=512 count=2048
文章图片
文章图片
之后就会显示配置成功了。
推荐阅读
- Linux|109 个实用 shell 脚本
- linux笔记|linux 常用命令汇总(面向面试)
- Linux|Linux--网络基础
- linux|apt update和apt upgrade命令 - 有什么区别()
- linux|2022年云原生趋势
- Go|Docker后端部署详解(Go+Nginx)
- 开源生态|GPL、MIT、Apache...开发者如何选择开源协议(一文讲清根本区别)
- GitHub|7 款可替代 top 命令的工具