IBM版LTFSをRHEL5で使ってみた

IBMのLTOチェンジャーを使ってLTFSを構築することになったので、やってみた。

用意するもの
・Linux用LTOドライバ lin_tape
 配布はlin_tape-バージョン.src.rpmという形のsource rpmなので、rpmbuildでコンパイルする
・IBM版LTFS LE(Library Edition)
 IBMページを起点に入手・・・と行きたいところだが、実際には気軽に入手できないので注意。
 IBM LTOチェンジャーを買うと、IBM営業経由でSoftware CDを入手することができる。
 Webで入手できるのはCDに対するアップデータで、ベースがないと動作しない。

手順

1. lin_tapeをインストール
 インストール後、/dev/st0、/dev/nst0という形だったLTOドライブは
 /dev/IBMTape0という名前になる。
2. 現状のデバイス名確認
 # ls -l /dev/IBM*
 「IBMChanger0」はLTOチェンジャー部分のデバイス
 「IBMtape0」はLTOテープドライブ分のデバイス
3. LTFS LEをインストール
 まぁ、普通にRPMをインストール

・LTFS LEの起動
チェンジャーデバイスが「/dev/IBMchanger0」
LTFSのマウントポイントを「/ltfs」とする場合、以下の様に起動する。

[root@ltfs ~]# ltfs /ltfs -o changer_devname=/dev/IBMchanger0
LTFS14000I LTFS starting, LTFS version 2.1.2.0 (2501), log level 2
LTFS14058I LTFS Format Specification version 2.1.0
LTFS14104I Launched by "ltfs /ltfs -o changer_devname=/dev/IBMchanger0"
LTFS14105I This binary is built for Linux (x86_64)
LTFS14106I GCC version is 4.1.2 20080704 (Red Hat 4.1.2-52)
LTFS17087I Kernel version: Linux version 2.6.18-194.el5 (mockbuild@x86-005.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64
LTFS17089I Distribution: Red Hat Enterprise Linux Server release 5.5 (Tikanga)
LTFS14063I Sync type is "time", Sync time is 300 sec
LTFS17085I Plugin: Loading "ibmtape" driver
LTFS17085I Plugin: Loading "unified" iosched
LTFS17085I Plugin: Loading "ibmtape" changer
LTFS17085I Plugin: Loading "ondemand" dcache
LTFS11593I LTFS starts with a product license version (20120712_1200)
LTFS12165I lin_tape version is 1.74.0
LTFS12118I Changer identification is '3572-TL         '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is 0021
LTFS12160I Changer serial is 00000XXXXXXXXXXX
LTFS12196E IOCTL: INQUIRY PAGE -1056947426 failed -20501 (err 22) 00000XXXXXXXXXXX
LTFS12165I lin_tape version is 1.74.0
LTFS12158I Opening a device through ibmtape driver (/dev/IBMtape0)
LTFS12118I Drive identification is 'ULT3580-HH5     '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is BBNF
LTFS12160I Drive serial is 1068082305
LTFS17160I Maximum device block size is 1048576
LTFS13500I On-demand dentry cache is initialized
LTFS11545I Rebuilding the cartridge inventory
LTFS14506I LTFS admin server is listening on port 2112
LTFS14111I Initial setup completed successfully
LTFS14112I Invoke 'mount' command to check the result of final setup
LTFS14113I Specified mount point is listed if succeeded
[root@ltfs ~]# 

注意:自動起動してくれないので、サーバを起動するたびに実行する必要がある。

・LTFSでのデバイス認識状況を確認

[root@ltfs ~]# ltfsadmintool -I
1068082305 -> Device: /dev/IBMtape0 [ULT3580-HH5] , Library address: 257, Status: Available
[root@ltfs ~]# 

ドライブが1台であるばあい、こんな風に表示される。

・LTFS上のテープメディア認識状況を確認
「ltfsadmintool -i」で確認します。

[root@ltfs ~]# ltfsadmintool -i
BMV157L5 -> Location: Medium storage element,    Address: 4095, Capacity:   0GB, Remaining:      0GB, Status: Unknown
BMV156L5 -> Location: Medium storage element,   Address: 4097, Capacity:   0GB, Remaining:      0GB, Status: Unknown
BMV158L5 -> Location: Medium storage element,   Address: 4099, Capacity:      0GB, Remaining:      0GB, Status: Unknown
[root@ltfs ~]# 

「Status: Unknown」となっている場合は、まだフォーマットされていないか、一度の読み込まれたことがないテープです。

・LTFSで利用するLTOテープをフォーマットする

[root@ltfs ~]# ltfsadmintool -t BMV157L5 -f 
LTFS15000I Starting mkltfs, LTFS version 2.1.2.0 (2501), log level 2
LTFS15041I Launched by "/opt/IBM/ltfs/bin/mkltfs -d /dev/IBMtape0 -s BMV157"
LTFS15042I This binary is built for Linux (x86_64)
LTFS15043I GCC version is 4.1.2 20080704 (Red Hat 4.1.2-52)
LTFS17087I Kernel version: Linux version 2.6.18-194.el5 (mockbuild@x86-005.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64
LTFS17089I Distribution: Red Hat Enterprise Linux Server release 5.5 (Tikanga)
LTFS15003I Formatting device '/dev/IBMtape0'
LTFS15004I LTFS volume blocksize: 524288
LTFS15005I Index partition placement policy: None
LTFS17085I Plugin: Loading "ibmtape" driver
LTFS12165I lin_tape version is 1.74.0
LTFS12158I Opening a device through ibmtape driver (/dev/IBMtape0)
LTFS12118I Drive identification is 'ULT3580-HH5     '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is BBNF
LTFS12160I Drive serial is XXXXXXXXXX
LTFS17160I Maximum device block size is 1048576
LTFS17157I Changing the drive setting to write-anywhere mode
LTFS15010I Creating data partition b on SCSI partition 1
LTFS15011I Creating index partition a on SCSI partition 0
LTFS12207I Logical block protection is disabled
LTFS17165I Resetting the medium's capacity proportion
LTFS11097I Partitioning the medium
LTFS11100I Writing label to partition b
LTFS11278I Writing index to partition b
LTFS11100I Writing label to partition a
LTFS11278I Writing index to partition a
LTFS15013I Volume UUID is: ae724b01-e9ce-40b8-8786-573eab051801
LTFS15019I Volume capacity is 1425 GB
LTFS12207I Logical block protection is disabled
LTFS15024I Medium formatted successfully
Tape BMV157L5 successfully formatted or unformatted.
[root@ltfs ~]# 

なお、一度、LTFSでフォーマットしたことがあるメディアは、上記のコマンドではフォーマットできない。
「ltfsadmintool -t BMV157L5 -f — -f」というふうに「– -f」というオプションをつける必要がある。

・LTFSでフォーマットされ、認識されたことを確認
下記は、BMV157L5 とBMV156L5をフォーマットした後の表示です。

[root@ltfs ~]# ltfsadmintool -i
BMV157L5 -> Location: Data transfer element,    Address:  257, Capacity:   1327GB, Remaining:   1296GB, Status: Valid LTFS
BMV156L5 -> Location: Medium storage element,   Address: 4097, Capacity:   1327GB, Remaining:   1296GB, Status: Valid LTFS
BMV158L5 -> Location: Medium storage element,   Address: 4099, Capacity:      0GB, Remaining:      0GB, Status: Unknown
[root@ltfs ~]# 

・テープへの書き込み

/ltfs/の下を覗くと、バーコードラベルのディレクトリが表示されます。
そこにcdコマンドで移動したり、cpのコピー先として指定したりすることで
通常のファイルシステムと、ほぼ同等に使うことができます。

ネットワークストレージ業界の標準ハードウェアSupermicro 6036ST-6LR

ここ2年ぐらいの間に、いろんな形でのSSD/FlashとHDDを組み合わせた形で高速化を図っているネットワークストレージ(NFS/iSCSI)の製品が出ています。

以前、うちのblogでも紹介したTintri VMstoreNimbleStorageがそんな感じの製品です。

で・・・Tintri VMstoreは特徴がそのままだったので、すぐにわかったのですが、
NimbleStorageも、よくよく調べてみれば情報があり、正体がわかってきました・・・

どっちも、Supermicro社のSuper Storage Bridge Bay (SBB)シリーズSYS-6036ST-6LRでした。(日本の代理店ページ)

まぁ、マザーボードを2枚積んで、両方のシステムからストレージベイにアクセス出来るようなサーバ筐体で、汎用的な製品が他にないので、こうならざるおえないですけどね。

1筐体にマザーボードが2枚積まれていますが、マザーボード間は10GbpsのNIC 2組でクロス接続されており、そこを使ってアクティブ/スタンバイ監視をおこなったり、キャッシュ情報のやりとりなどをおこなったりします。
(まぁ、そこらへんは、ソフトウェア実装に依存しますが)

また、マザーボードには拡張スロットが3つ(PCIe x8が1,PCIe x4が2)と、SASポートが1つあるので、拡張性という面でもまずまずなところです。

Tintri VMstore T540の方は、拡張筐体をサポートしていませんが、
NimbleStorage CS2xxシリーズの方は、拡張筐体をサポートしています。

まぁ、肝心なのは上に載せるソフトウェアの問題なので、ハードウェアが一緒であったとしても、違いが出せれば問題ないですけどね

SoftNASという仮想マシンとして立てるCentOS+ZFSのNAS

2021/02/10追記

2020/04/21にSoftNAS社Buurst社となっていた(Learn the new rules of cloud storage)。
プロダクトとしては引き続きSoftNASという名称のままである。

2021年1月にCentOS8.2ベースにsamba 4.12を載せたSoftNAS 5がリリースされていた(Announcing SoftNAS 5 – a Modern Approach to Cloud NAS)。

これまでのリリースノート一覧ドキュメントなども見やすい形で公開されるようになっていた。

ただ、以前あったDeveloper Editionは消えて、Demo版がAWSAzure上で展開できる、という形がメインになっている模様で、ローカルのvSphere上で展開する用のファイル提供の入手は面倒になっているようだ。



2019/01/23追記

2019年1月現在、SoftNAS Essentialsは有償プランの1つとなり、無償で使えるものは「SoftNAS Developer Edition」となった。使用可能容量も250GBまでと大きく制限されている。Amazon AWS, Microsoft Azureのマーケットプレイスにイメージが並んでいるので、そこからデプロイできる他、スタンドアローンのvSphere上にデプロイするためにSoftNAS-4.0.1.ovaが提供されている。

以下は2013年3月記載の古い記述となります。


SoftNASというものがあるらしい。

・CentOS6ベース
・ファイルシステムはZFS
・vSphereやHyper-Vの上に仮想マシンとして動作させる
・Amazon EC2用も用意されている
・検証用にVMware Workstation 8.xもサポート
・割り当てるCPUリソースは2vCPU~8vCPU
・割り当てるメモリリソースは2GB~32GB
・Dedupe機能あり(1TBにつきメインメモリ1GB追加使用)
・Thinprovisionおよび圧縮
・NFS/CIFS/iSCSIを提供できる
・Volumeスナップショット
・レプリケーション機能あり
  → Amazon EC2上に立てたサーバにレプリケーションできる
・ZFS L2ARCを利用したSSD利用の高速化

SoftNAS Essentials」という機能限定版は無償利用可能。
限定の内容の抜粋
・1TBまで
・以下の機能が使えない
 ・SSD利用の高速化
 ・iSCSI機能
 ・レプリケーション
 ・スナップショットのスケジューリング

詳細の違い

まぁ、おもしろそうではあるので、ちょっと試しに使ってみるかな


インストールしてみた

・CentOS 6.3 x86_64
・kernelはCentOS標準を利用している
ZFS on Linux利用
zfs-0.6.0-rc14.x86_64, zfs-modules-dkms,zfs-dracut,zfs-test
・独自Web GUI+Webmin
・NFSやCIFS設定はWebmin画面という感じ
・独自Web GUIは、iconCubeを使って暗号化処理をおこなっている
・独自Web GUIは多言語対応を考慮に入れてないっぽい
・LinuxはGUIログイン
・Chromeインストール&yum repo登録済
・sysctlに特にコレといったパラメータが入れられてない
・/etc/sysconfig/nfsとか/etc/init.d/nfsにも特にパラメータが入ってない
・「Software Updates」は、あくまでSoftNASに関するモジュールのみで、CentOS自体のアップデートは対象外


微妙だなぁ、と感じた、もっとも大きな点は、管理UIの不徹底です。

新規で使う際、以下の順序で操作をおこなっていきます。

1. Webにログイン
main-001
独自のAJAXなUIです。

2. 「Disk Devices」にて空きディスクにパーテーション設定
disk-dev
この画面はWebminそのままです。

3. 「Storage Pools」にてディスクの登録
storagepool
独自のAJAXなUIです。

4. 「Volumes and LUNs」にてボリューム作成
volume
独自のAJAXなUIです。
ここでボリュームを作成すると、マウントされるようになります。

5. 「NFS Exports」にてNFSマウントの設定
nfs-export
この画面はWebminそのままです。
NFSv4対応のwebmin設定画面はPseudofilesystemの関連でちょっとわかりにくいのですが、放置です。

6. 「CIFS Shares」にてCIFS関連設定
cifs-share
この画面もWebminそのままです。
なお、説明書を見ると、CIFS設定は、別途コマンドおよびファイル編集が必要、と書いてあります。

というわけで、使いやすそうな雰囲気がするGUIのわりに、手を抜いてる場所が結構あるせいで、操作感の統一がされておらず、説明も足りてないので、非常に使いにくい感じになっています。

はたして、これは修正されていくのでしょうか・・・???

SmartArray P410のfirmwareをCentOS6でアップデートしてみた

Smart Array P410をRAIDカードだけ入手して、CentOS6.3のサーバにさしてみた。
認識はしたんだが、firmwareが古い。

また、おそらくマザーボードの問題で、P410からのブートは無理だったので、USBメモリにbootパーテーションを作って、そこから起動させる形でLinuxをインストールした。

インストール完了後、 hpacucliをインストールして、ステータスを確認してみる。

# hpacucli
HP Array Configuration Utility CLI 9.40.12.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=>ctrl all show config detail

Smart Array P410 in Slot 6
   Bus Interface: PCI
   Slot: 6
   Serial Number: PACCRID??????RQ
   Cache Serial Number: PAAVPID??????KDX
   RAID 6 (ADG) Status: Disabled
   Controller Status: OK
   Hardware Revision: C
   Firmware Version: 3.00
   Rebuild Priority: Medium
   Expand Priority: Medium
   Surface Scan Delay: 3 secs
   Surface Scan Mode: Idle
   Queue Depth: Automatic
   Monitor and Performance Delay: 60  min
   Elevator Sort: Enabled
   Degraded Performance Optimization: Disabled
   Inconsistency Repair Policy: Disabled
   Wait for Cache Room: Disabled
   Surface Analysis Inconsistency Notification: Disabled
   Post Prompt Timeout: 15 secs
   Cache Board Present: True
   Cache Status: OK
   Cache Ratio: 25% Read / 75% Write
   Drive Write Cache: Disabled
   Total Cache Size: 512 MB
   Total Cache Memory Available: 400 MB
   No-Battery Write Cache: Enabled
   Cache Backup Power Source: Batteries
   Battery/Capacitor Count: 1
   Battery/Capacitor Status: Failed (Replace Batteries)
   SATA NCQ Supported: True
   Array: A
      Interface Type: SAS
      Unused Space: 0  MB
      Status: OK
      Array Type: Data
      Spare Type: dedicated

      Logical Drive: 1
         Size: 205.0 GB
         Fault Tolerance: 5
         Heads: 255
         Sectors Per Track: 32
         Cylinders: 52687
         Strip Size: 256 KB
         Full Stripe Size: 768 KB
         Status: OK
         Caching:  Enabled
         Parity Initialization Status: In Progress
         Parity Initialization Progress: 79.64% complete
         Unique Identifier: 600508B100103130333?????????????
         Disk Name: /dev/sda
         Mount Points: /boot 500 MB
         OS Status: LOCKED
         Logical Drive Label: A23B2853PACCRID???????????F
         Drive Type: Data

      physicaldrive 1I:0:3
         Port: 1I
         Box: 0
         Bay: 3
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 10000
         Firmware Revision: 0603
         Serial Number: 0422???Y            3??????Y
         Model: SEAGATE ST973402SSUN72G
         PHY Count: 2
         PHY Transfer Rate: 3.0Gbps, Unknown

      physicaldrive 1I:0:4
         Port: 1I
         Box: 0
         Bay: 4
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 10000
         Firmware Revision: 0603
         Serial Number: 0422???1            3??????1
         Model: SEAGATE ST973402SSUN72G
         PHY Count: 2
         PHY Transfer Rate: 3.0Gbps, Unknown

      physicaldrive 2I:0:5
         Port: 2I
         Box: 0
         Bay: 5
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 10000
         Firmware Revision: 0603
         Serial Number: 0522???3            3??????3
         Model: SEAGATE ST973402SSUN72G
         PHY Count: 2
         PHY Transfer Rate: 3.0Gbps, Unknown

      physicaldrive 2I:0:6
         Port: 2I
         Box: 0
         Bay: 6
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 10000
         Firmware Revision: 0603
         Serial Number: 0422???7            3??????7
         Model: SEAGATE ST973402SSUN72G
         PHY Count: 2
         PHY Transfer Rate: 3.0Gbps, Unknown

      physicaldrive 2I:0:7
         Port: 2I
         Box: 0
         Bay: 7
         Status: Predictive Failure
         Drive Type: Spare Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 10000
         Firmware Revision: 0603
         Serial Number: 4922???W            3??????W
         Model: SEAGATE ST973402SSUN72G
         PHY Count: 2
         PHY Transfer Rate: 3.0Gbps, Unknown


   SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250
      Device Number: 250
      Firmware Version: RevC
      WWID: 500143800??????F
      Vendor ID: PMCSIERA
      Model:  SRC 8x6G

#

ディスクが1本死にかけてるとか、バッテリーモジュールが死んでるとか、RAID構築中とか、あるけれど、firmware はv3.0であることを確認。

バージョンアップしようとしたところ、エラーが・・・

# ./CP019316.scexe
./hpsetup: ./ccissflash: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません
#

なんのファイルが足らないのか調べようとしたら、実行した後に展開される作業用ファイルを削除してしまってわからない。

CP019316.scexeはシェルスクリプトなので、ファイルを展開するだけのオプションがないか確認したところ「–unpack=出力先ディレクトリ」であることが判明。

# ./CP019316.scexe --unpack=/root/t
1115.bin
CP019316.xml
MIZ108.bin
Rom.bin
ccissflash
firmware.cfg
hpsetup
libcpqimgr.so
sandman.bin
# ls -l /root/t
合計 20908
-rwxr-xr-x 1 root root 1494272 11月 16 04:24 2011 1115.bin
-rw-rw-rw- 1 root root  743473 12月 14 02:25 2012 CP019316.xml
-rwxr-xr-x 1 root root 1461504  9月 18 02:36 2012 MIZ108.bin
-rwxr-xr-x 1 root root 4194304 11月 16 04:24 2011 Rom.bin
-rwxr-xr-x 1 root root 7159043  3月 27 14:10 2012 ccissflash
-rw-rw-rw- 1 root root     427 12月 14 02:20 2012 firmware.cfg
-rwxrwxrwx 1 root root     268 12月 14 02:20 2012 hpsetup
-rwxr-xr-x 1 root root 2148102  3月 27 14:11 2012 libcpqimgr.so
-rwxr-xr-x 1 root root 4194304 12月 12 09:31 2012 sandman.bin
# file *
1115.bin:       data
CP019316.xml:   XML  document text
MIZ108.bin:     data
Rom.bin:        data
ccissflash:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
firmware.cfg:   ASCII text, with CRLF line terminators
hpsetup:        Bourne-Again shell script text executable
libcpqimgr.so:  ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
sandman.bin:    data
#

とりあえず、よくある compat-libstdc++-296あたりかな、と「yum install compat-libstdc++-296」を実行。

# yum install compat-libstdc++-296
<略>
Dependencies Resolved

================================================================================
 Package                  Arch       Version                  Repository   Size
================================================================================
Installing:
 compat-libstdc++-296     i686       2.96-144.el6             base         77 k
Installing for dependencies:
 glibc                    i686       2.12-1.80.el6_3.7        updates     4.3 M
 libgcc                   i686       4.4.6-4.el6              base        111 k
 nss-softokn-freebl       i686       3.12.9-11.el6            base        116 k
Updating for dependencies:
 glibc                    x86_64     2.12-1.80.el6_3.7        updates     3.8 M
 glibc-common             x86_64     2.12-1.80.el6_3.7        updates      14 M

Transaction Summary
================================================================================
Install       4 Package(s)
Upgrade       2 Package(s)

Total download size: 23 M
Is this ok [y/N]: y
<略>
# ./ccissflash
./ccissflash: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
#

まだエラーがでている。
というか、「compat-libstdc++-296」ではなかったようだ。

ぐぐったところ「“bad ELF interpreter” Error When Running Smart Array Controller Firmware Update Script」を発見。

「glibc-2.12-~.i686」と「libstdc++-4.4.6-~.i686」があれば良かったらしい。
先ほどの操作でglibc-2.12-~.i686はインストールされたので、libstdc++-4.4.6のみインストール。

# yum install libstdc++-4.4.6-4.el6.i686
<略>
Dependencies Resolved

================================================================================
 Package             Arch           Version                Repository      Size
================================================================================
Installing:
 libstdc++           i686           4.4.6-4.el6            base           299 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 299 k
Installed size: 908 k
Is this ok [y/N]: y
<略>
#  ./ccissflash

HP Enclosure ROM  Flash.
Flash Engine Version: 2.06.10
Copyright (c) 2006-2009 Hewlett-Packard Development Company L.P.

-i<romfile> is required
#

こんどは、問題なく動作できた。

改めてfirmwareのアップデートプログラムを実行

# ./CP019316.scexe

HP Enclosure ROM  Flash.
Flash Engine Version: 2.06.10
Copyright (c) 2006-2009 Hewlett-Packard Development Company L.P.

Device [P410]:  FW Ver [ Current:3.00 | Apply:6.00 ?]Flash this device? [NO, yes, quit] yes
Preparing to flash devices on the array controller...
Requesting flash - this could take up to 15 minutes...
The array flash operation succeeded.
Device [P410]:  FW Ver [ Current:3.00 | Apply:6.00 ?]Flash this device? [NO, yes, quit] yes
Preparing to flash devices on the array controller...
Requesting flash - this could take up to 15 minutes...
Flash complete.
The array flash operation succeeded.
#

アップデート後は再起動して、hpacucliにてバージョンを確認。

# hpacucli ctrl all show config detail

Smart Array P410 in Slot 6
   Bus Interface: PCI
   Slot: 6
   Serial Number: PACCRID??????RQ
   Cache Serial Number: PAAVPID??????KDX
   RAID 6 (ADG) Status: Disabled
   Controller Status: OK
   Hardware Revision: C
   Firmware Version: 6.00-2
   Rebuild Priority: Medium
   Expand Priority: Medium
<略>

v6.00-2になっていることを確認した。

ESXi5.1にすると起動しない仮想マシン

ESXi5.1にアップデートした後、NetApp simulatorがなぜか起動しない。

以下のエラーが出力される。

ディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」、またはディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」が依存しているスナップショット ディスクの 1 つを開くことができません。 
システムで指定されたファイルを見つかりません
VMware ESX は仮想ディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」を検出できません。パスが有効であることを確認し、もう一度やり直してください。 

これに対する回答がNetApp comminityにあった。

OnTap Simulator 8.1.1 no longer running on ESXi 5.1 free

原因はESXi5.1以降、標準ではvmkernel multiextent moduleが読み込まれなくなったため。
このモジュールは、巨大な1つのvmdkではなく、そこそこの大きさの複数のファイルでvmdkを構成するときに使うもの。

対処方法はVMware KB:「 Powering on a virtual machine after upgrading to ESXi 5.1 fails with the error: File [VMFS volume] VM-name/VM-name.vmdk was not found」にあるとおりのことをする。

概要: multiextentモジュールを読み込んで、分割形式のvmdkから、単一ファイルのvmdkへ変換する。

2019/12/04 追記:ESXi 6.7ではmultiextentモジュールが無くなっているが、vmkfstoolコマンド自体に機能が追加されており、下記のその2の操作が不要となりました。

その1:状況確認

# ls
DataONTAP-cf-flat.vmdk  DataONTAP-s012.vmdk     DataONTAP.vmdk
DataONTAP-cf.vmdk       DataONTAP-s013.vmdk     DataONTAP.vmsd
DataONTAP-s001.vmdk     DataONTAP-s014.vmdk     DataONTAP.vmx
DataONTAP-s002.vmdk     DataONTAP-s015.vmdk     DataONTAP.vmxf
DataONTAP-s003.vmdk     DataONTAP-s016.vmdk     SimConsType
DataONTAP-s004.vmdk     DataONTAP-s017.vmdk     SimUpdateParameters
DataONTAP-s005.vmdk     DataONTAP-s018.vmdk     cfcard
DataONTAP-s006.vmdk     DataONTAP-s019.vmdk     mtoolsrc
DataONTAP-s007.vmdk     DataONTAP-s020.vmdk     nvram
DataONTAP-s008.vmdk     DataONTAP-s021.vmdk     vmware-1.log
DataONTAP-s009.vmdk     DataONTAP-s022.vmdk     vmware-2.log
DataONTAP-s010.vmdk     DataONTAP-s023.vmdk     vmware.log
DataONTAP-s011.vmdk     DataONTAP-s024.vmdk
#

その2: multiextentモジュール読み込み

この手順はvSphere 6.5とか6.7では不要です。

# vmkload_mod multiextent
Module multiextent loaded successfully
#

その3: 分割vmdkのDataONTAP.vmdkを、単一vmdkのDataONTAP-new.vmdkにコピー

下記はzerodthickにしていますが「thin」指定など他のフォーマットでも大丈夫です。

# vmkfstools -i DataONTAP.vmdk DataONTAP-new.vmdk -d zeroedthick
Destination disk format: VMFS zeroedthick
Cloning disk 'DataONTAP.vmdk'...
Clone: 100% done.
#

その4: DataONTAP.vmdkを削除

# vmkfstools -U DataONTAP.vmdk
#

その5: ファイル名の変更

# vmkfstools -E DataONTAP-new.vmdk DataONTAP.vmdk
#

その6: multiextentモジュールの読み込み解除

この手順はvSphere 6.5とか6.7では不要です。

# vmkload_mod  -u multiextent
Module multiextent successfully unloaded
#

その7: 状況確認

# ls
DataONTAP-cf-flat.vmdk  DataONTAP.vmxf          vmware-1.log
DataONTAP-cf.vmdk       SimConsType             vmware-2.log
DataONTAP-flat.vmdk     SimUpdateParameters     vmware-3.log
DataONTAP.vmdk          cfcard                  vmware.log
DataONTAP.vmsd          mtoolsrc
DataONTAP.vmx           nvram
# 

変換完了後、普通に起動できました。

なお、変換後、ついでに仮想マシンハードウェアバージョンを7から上げるか!と13にあげてみたところ、新しい仮想マシンハードウェアではサポートされないデバイスがあったようで起動できなくなりました・・・