linux下配置磁盘池可能出现的问题及解决办法
总体流程:
初始化擦除磁盘 -> 建立磁盘池配置文件 -> warpdrive挂磁盘池
具体步骤:
1、准备两块磁盘(如dev/sdb1、dev/sdc1),用wipefs命令擦除磁盘。
-
wipefs -a /dev/sdb1
-
wipefs -a /dev/sdc1
如果擦除失败则可用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
之后就会显示配置成功了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了