2014年3月22日土曜日

ZFS on Linux の vdev_id

ZFS on Linux が認識するデバイスパスは、デフォルトでは /dev/disk/by-id が使われます。次のような具合です。
[root@hoge ~]# uname -a
Linux hoge 2.6.32-431.5.1.el6.x86_64 #1 SMP Wed Feb 12 00:41:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@hoge ~]# zpool status
  pool: tank4
 state: ONLINE
  scan: scrub repaired 0 in 1h18m with 0 errors on Sat Mar 15 20:39:47 2014
config:

 NAME                                                        STATE     READ WRITE CKSUM
 tank4                                                       ONLINE       0     0     0
   mirror-0                                                  ONLINE       0     0     0
     ata-HITACHI_HTS725050A9A364_xxxxxxxxxxxxxxxxxxxx-part1  ONLINE       0     0     0
     ata-HGST_HTS721010A9E630_yyyyyyyyyyyyyy-part1           ONLINE       0     0     0

errors: No known data errors
[root@hoge ~]# ls -l /dev/disk/by-id/ata-H*-part1
lrwxrwxrwx 1 root root 10 Mar 22 15:24 /dev/disk/by-id/ata-HGST_HTS721010A9E630_yyyyyyyyyyyyyy-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 22 15:24 /dev/disk/by-id/ata-HITACHI_HTS725050A9A364_xxxxxxxxxxxxxxxxxxxx-part1 -> ../../sdc1
sdX なんかを使ってはよろしくない(ずれるから)のは分かりますが、どうにも長くて、特に同じ種類のディスクを使っていると個体を識別し難い(何番目のベイのディスクか不明瞭)と思っていました。
ZFS on Linux には、vdev_id というツールが用意されていて、この長いパスに別名(alias)を付与することができるようです。/etc/zfs/vdev_id.conf に次のように指定します。
#     by-vdev
#     name     fully qualified or base name of device link
alias  HITACHI_500G  ata-HITACHI_HTS725050A9A364_xxxxxxxxxxxxxxxxxxxx
alias  HGST___1000G  ata-HGST_HTS721010A9E630_yyyyyyyyyyyyyy
設定して再起動すると、/dev/disk/by-vdev というデバイスパスが生成されるようになります。
[root@hoge ~]# ls -l /dev/disk/by-vdev/H*-part1
lrwxrwxrwx 1 root root 10 Mar 22 15:24 /dev/disk/by-vdev/HGST___1000G-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 22 15:24 /dev/disk/by-vdev/HITACHI_500G-part1 -> ../../sdc1
いったんプールを export してから、-d オプションを使って import し直せば、この便利な名前が使われるようになります。
[root@hoge ~]# zpool export tank4
[root@hoge ~]# zpool import -d /dev/disk/by-vdev tank4
[root@hoge ~]# zpool status tank4
  pool: tank4
 state: ONLINE
  scan: scrub repaired 0 in 1h18m with 0 errors on Sat Mar 15 20:39:47 2014
config:

 NAME                    STATE     READ WRITE CKSUM
 tank4                   ONLINE       0     0     0
   mirror-0              ONLINE       0     0     0
     HITACHI_500G-part1  ONLINE       0     0     0
     HGST___1000G-part1  ONLINE       0     0     0

errors: No known data errors
うまく名前を付与すれば物理的な接続(SATA portの何番に接続したディスクか?ベイの何段目のディスクか?等)も表現できて便利と思います。短めの名前をつければ、コンソール画面(横80桁)での操作時に、折り返し表示にならずに済むことにもなります。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ