先强调,本文所说的flashcache是指facebook的那款开源软件,不是指“快速设备”。
同事先是反映flashcache创建的设备被fdisk和parted等工具分区后,在/dev/目录下没有出现新设备(通常,对/dev/sdb设备分区后,会出现/dev/sdb1,/dev/sdb2等子设备)
查了一下资料,multi-device系列的设备(包括flashcache和linux下的软raid)都不支持原始的分区方式,只能用lvm创建logic volume来代替分区。
后来问了一下同事,原来是想在flashcache上创建Oracle ASM,按照这上面说的步骤试了一下

create diskgroup data external redundancy disk '/dev/raw/raw1','/dev/raw/raw2';

Oracle居然说/dev/raw/raw1设备不在"discovery set“里,没办法,只好

chown oracle:dba /dev/mapper/cachedev

后改用/dev/mapper/cachedev,但是又报错说ASM加入的单盘不能超过2048G,即2T,而我的flashcache虚拟设备是3T。
查到这个资料,ASM还真有这个限制,于是,耍了个滑头,重新创建flashcache,把它分成两个1.5T的虚拟设备,再:

create diskgroup data external redundancy disk '/dev/mapper/cachedev1','/dev/mapper/cachedev

这次还报错,说

ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15130: diskgroup "DATA" is being dismounted

于是尝试删除"DATA"这个diskgroup:

drop diskgroup DATA;

又报错:

ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15001: diskgroup "DATA" does not exist or is not mounted

我骂人的心都有了,又说”DATA“已经dismouted了,又说它不存在,搞什么?
最后也没成功。Oracle ASM + flashcache,够呛,还是lvm + flashcache吧,或者干脆不用卷管理,直接用文件系统。