How to create ゴミ 
Sunday, February 9, 2014, 06:57 AM - チラシの裏
Posted by Administrator
某所の何かで起きた問題。

某所の何かではVM基幹にVMwareを使用しているのですが、VMwareのファイルシステム(データを保存する方法)としてVMFS3とVMFS5と言う物があります。

概要だけ言うとVMFS3はデータストアに対する割り当て可能ディスクサイズが2Tまでで、3Tとかのディスクを割り当てても2Tまでしか使われません。また、2Tのディスクを最大32個のディスクを割り当てられ、合計64TBまでのデータストアを作れます。

 VMFS5は割り当て可能なディスクサイズが64TBまで拡張されました。ただし、データストアの合計最大値は64TBまでのままです。しかしながら、割り当てる方法としては64TBのでかいディスクを作成するか、32Tx2にするか、今までと同じように2x32で作るか…などの選択が出来るようになりました。VMFS5はESXi4以降であればそのまま利用することが出来、ESXi5に関してはデフォルトでVMFS5を利用します。

 そんな中、実績が云々という理由でVMFS5がつかえる中、あえてVMFS3を使っている場所がありました。普段2TBと言う容量はそう使い切る容量ではないのですが、色々なバックアップで使用すると2TBでは足りず、8TBへ拡張する必要が出てしまいました。
 どう拡張するかというと、前述のLVMを利用し、2TBのLUNを4つ作り、それをRDMでVMに割り当て、LVにまとめ2Tx4=8TBという容量にするという算段でした。この段階ですでに何かがおかしいと思いますが、どうやらこの方法で行くことになったようです。

 しかし、ただこれだけの作業であっても何か問題が起きるのがどこかのクオリティーで、どういう訳だか4TのLUNを作成し、起動できないVMが出来上がったようです。意味が分からない。その確認を依頼されたわけですが、そもそもどうやったらそのゴミが作れるのか?と言うのが疑問だったので自宅の環境で試してみました。

 まずは、同じ環境であるESXi5u1をインストールし、targetcliからiscsiポータルを作成し、2TのLUNを2つと3TBのLUNをzfs create -Vでメインストレージから切り出しました。詳しい方法は表のブログではないので省きます。

 


 某所のポリシーとしてはRDM(Raw device mapping)という方式でLUNをマウントしているのですが、そもそもVMFS3で2TB以上のLUNを割り振れるか試してみたところ、以下のようにRDMであっても2TBまでしか認識できません。と言うかそもそもあの構成ではRDM使う理由がないんですが…。

 


 そこで、データストアに2TBのLUNを2つ割り当て、4TBのデータストアを作成し、vmdkで割り当ててみます。




 ここから、VMの構成を変更し3TBのVMDKを作成しようとしたところ、以下のような警告が出ました。




 まあですよね。

 あれこれ考えたところ、先に2TB以下のRDMを作成し、その後無理矢理ディスクサイズを拡張したらどうか?という疑問が湧いたので試してみました。




 この3TBのLUNをサイズ変更します。
#zfs set san/rdm volsize=100G

 このコマンドを実行後、再度ストレージのスキャンを行います。




 すると、指定した100GにLUNがリサイズされています。
 その後、そのLUNをRDMでマウントします。この段階では矛盾がないので、当然エラーなどは起きず正常にマウントされます。データストアを見てみると、100Gのvmdkファイル(中身はRDMへのリダイレクト)が出来上がっています。




 正しくデータが見えることを確認後、認識したLUNのサイズを拡張します。

#zfs set san/rdm volsize=3T

 再度データストアのスキャンし、対象のディスクのサイズが3TBに拡張されていることを確認します。




 その後、データストアを見ると、先ほどの100GのLUNが3TBに拡張されています。制限を超えたので表示がおかしいです。




 その状態で構成変更をせず、VMの電源を入れます。VMなのに電源を入れるという言い方も変ですが。
 すると…





 おめでとうございます!電源の立ち上がらない立派なゴミが出来上がりました!!!

 …どうしてこう普通は警告に引っかかるところを、わざわざ引っかからない裏道ルートですり抜けて自爆するんでしょうか、某所は…。検証途中で「マジどうやったらこの4Tのゴミを作れるんだ…」と何度も悩んだので、このゴミが出来上がったときは「やったー!うごいたー!」と言ってしまいましたが、結果的に出来上がったのはゴミなのでうごいてないですね。

 言われている前提としては「4TのLUNは消して良い」との事ですが、この方法だと「以前割り当てられていた」LUNを拡張することになるので、本当に消して良いのか、以前何かに使っていなかったのか、と言うのが不安です。仮に、どこかのLVに割り当てられていたとしたら、それを消した瞬間…。しかし、出来上がってしまったゴミの中身確認するにはVMFS5へ変換するか、VMFS5で作成したVMからこのLUNをマウントする必要があるのです。しかしどちらも無いので、もう知りません。VMFS5で本番環境VMサーバにマウントするためだけのマシンを作ればいいのかもしれませんが、申請とか凄くしんどいのでやりたくないですし、もう自分の担当範囲ではないです。




 この「VMFS5へアップグレード」を押せばそれだけで終わるのですが、ここを押すにはまたあれこれしないといけないので、すぐそこにありながら誰もさわれない、近くて遙かに遠いボタンなのです。

 ほんと、3歩進んで5歩戻りその先で地雷を踏んで足を吹っ飛ばしているような感じです。ああ、不毛すぎる…


add comment ( 57 views )   |  permalink   |  print article   |   ( 3.9 / 579 )

<<First <Back | 1 | 2 | 3 | Next> Last>>