代码改变世界

闪存卡被创建pv报错

2018-10-22 20:47  AlfredZhao  阅读(436)  评论(0编辑  收藏  举报

背景:某机器有2块闪存卡,利用LVM,将其挂载到一个目录供测试使用;
之前厂商已经安装了闪存卡对应的驱动,fdisk可以看到闪存卡信息,但是在pvcreate创建时,遭遇如下错误:

# pvcreate /dev/dfa 
  Device /dev/dfa not found (or ignored by filtering).
# pvcreate /dev/dfb
  Device /dev/dfb not found (or ignored by filtering).

fdisk -l可以看到这两块闪存卡的信息,使用shannon-status -a也可以正常看到状态信息。
这初步说明驱动的安装应该没有问题。

从报错信息看有可能是设置了filter,而检查lvm的配置文件/etc/lvm/lvm.conf中并没有配置任何有效filter的内容。

最终解决:
在/etc/lvm/lvm.conf中有设置 types,语法没来及细查,直接仿照示例配置尝试添加宝存的闪存卡信息;

# types = [ "fd", 16 ]
types = [ "fd", 16 , "shannon", 252]

这里的252这个数字是通过查看/proc/devices信息获得:

# cat /proc/devices |grep shan
252 shannon

再次尝试创建pv成功:

--1.创建pv
# pvcreate /dev/dfa 
  Physical volume "/dev/dfa" successfully created
# pvcreate /dev/dfb
  Physical volume "/dev/dfb" successfully created

然后创建vg,lv,格式化,挂载这一系列操作就都很顺利了:

--2.创建vg
vgcreate vg_oracle /dev/dfa /dev/dfb
vgdisplay --查到 1525878 Free PE 

--3.创建lv
lvcreate -l 1525878 -n lv_oracle vg_oracle 

--查看lv信息
# lvs
  LV            VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LogVol_oracle VolGroup  -wi-ao---- 100.00g                                                    
  LogVol_root   VolGroup  -wi-ao---- 100.00g                                                    
  lv_oracle     vg_oracle -wi-a-----   5.82t 

--4.格式化lv
mkfs.ext4 /dev/vg_oracle/lv_oracle

--5.挂载目录使用
# mkdir /xtts

# /etc/fstab添加:
/dev/vg_oracle/lv_oracle        /xtts           ext4    defaults        0 0

# mount -a

--查看成功挂载的目录
# df -h /xtts
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_oracle-lv_oracle
                      5.8T   56M  5.5T   1% /xtts

其实事后思考,认为types中只添加宝存的应该就可以了,因为之前的示例本就是注释掉的,不过这个尚未测试,直觉是可行的:

types = [ "shannon", 252 ]

总结:这个问题本质是个很小的知识点,只是之前从未遇到,相信随着闪存卡的普及,应该也会给很多新人带来困惑,因此记录一下。