linux下配置磁盘池可能出现的问题及解决办法

总体流程:

初始化擦除磁盘 -> 建立磁盘池配置文件 -> warpdrive挂磁盘池

具体步骤:

1、准备两块磁盘(如dev/sdb1、dev/sdc1),用wipefs命令擦除磁盘。

  1.  
    wipefs -a /dev/sdb1
  2.  
    wipefs -a /dev/sdc1

        

        如果擦除失败则可用dd命令暴力初始化,但在用dd命令之前请务必将两块磁盘unmount掉,否则你的磁盘会瞬间爆炸,直接到64Z空间的大小。umount掉dev/sdb1、dev/sdc1后,执行下列命令:

  1.  
    dd if=/dev/zero of=/dev/sdb1 bs=512 count=2048
  2.  
    dd if=/dev/zero of=/dev/sdc1 bs=512 count=2048

2、建立磁盘池配置文件

  1.  
    # gold.yml文件
  2.  
    "name": "gold"
  3.  
    "driverName" : "devicemapper"
  4.  
    "thinPool":
  5.  
    "fileSystem" : "ext4"
  6.  
    "type" : "Linear"
  7.  
    "devices":
  8.  
    - "/dev/sdb1"
  9.  
     
  10.  
    # silver.yml文件
  11.  
    "name": "silver"
  12.  
    "driverName" : "devicemapper"
  13.  
    "thinPool":
  14.  
    "fileSystem" : "ext4"
  15.  
    "type" : "Linear"
  16.  
    "devices":
  17.  
    - "/dev/sdc1"

        目前建议配置存储池驱动:devicemapper 。它支持xfs和ext4两种文件系统。在type属性里我们可以选择磁盘池存储格式,有Linear,Stripe,SoftRaid1,SoftRaid5。

        Linear格式写入单块磁 盘,效率较高,最少需要一块磁盘; 

        Stripe要求配置多块盘,写入效率高 但是安全性低,最少需要两块磁盘;

        SoftRaid1代表Raid1方式,安全性高但是空间利用率低,最少需要两块磁盘;

        SoftRaid5代表Raid5方式,可保证数据安全性,同时确保一定的空间利用率,最少需要三块磁盘。

        因为我们这里是配两个磁盘池,每个磁盘池仅有一块磁盘,故直接指定存储格式为Liner即可。

3、执行配置命令。

  1.  
    warpdrive pool create -f {gold.yml路径}
  2.  
    warpdrive pool create -f {silver.yml路径}

如果只有一块磁盘,且无法umount的时候

        如果我们仅有一块磁盘,但想配两块磁盘池,则可通过fdisk将磁盘分为为两个区,再挂载,具体操作:

先将当前分区删除,这样整个磁盘空间就全腾出来了,接着new两个分区,保存。

格式化新建的两个分区/dev/sdc1、/dev/sdc2。

加下来再正常操作即可。

报create pv /dev/sdx failed:exit status5错:

报错如下:

原因:磁盘没有完全被擦除。

解决方案:dd命令

  1.  
    dd if=/dev/zero of=/dev/sdc1 bs=512 count=2048
  2.  
    dd if=/dev/zero of=/dev/sdc2 bs=512 count=2048

之后就会显示配置成功了。

原文地址:https://www.cnblogs.com/surplus/p/14141091.html