vSphere ESXiホスト上のTrueNAS ScaleにRDMしてみた

どうも、Tです。

ESXiホスト上に作成したTrueNAS Scaleの仮想マシンでRDM(Raw Device Mapping)を使ってzpoolを作成した備忘録です。

本記事の途中にも書いていますが、TrueNASを仮想マシンで動かしながら、RDMを使う構成はサポートされていません(明確な情報は見つかりませんでしたが、おそらく駄目でしょう)。あくまで私の個人検証環境で確認している内容になります。
スポンサーリンク
アドセンス1

やりたいこと

※イメージです。本記事のディスク構成とは多少異なっています。

サーバに搭載している一部のディスクはESXiのデータストアとして使用して、一部のディスクを仮想マシンで作成しているTrueNAS Scaleに物理ディスクとして見せる(RDM)構成をとります。

なんでこんなことをしているかというとざっと下記のような感じです。

  1. TrueNASにデカいvmdkをつけたくない
  2. ディスクのアクセス速度を可能な限り早くしておきたい
  3. そもそもTrueNASのZFSが物理ディスクを扱うものだから
  4. TrueNASのために物理サーバ一台使いたくない

特に3つ目がTrueNASにvmdkでつけるとHDDのシリアルとかが見えないんで、どれ管理しているかわかりにくいんですよね・・・・。

2つ目のディスクアクセスは「RDMでもvmdkでもそんなかわらないよ」とVMwareさんがいっているので、微妙な理由ですが・・・。

vSphere 5.1 - VMDK versus RDM
It seems the debate between using a VMDK on VMFS or an RDM still rages when it comes to the question which one is better for performance. The VMware team has pu...

環境

本記事は、下記のハードウェアとバージョンを使っています。

なお、操作はvCenterのvSphere Clientで行っています。

  • サーバ:PowerEdge R730
  • RAIDカード:PERC H730P Mini 
  • VMware ESXi:8.0.1, 21495797
  • TrueNAS-SCALE:22.12.3.1
  • RDMモード:物理

主要なところ以外スクリーンショットや操作は割愛しています。

なぜRDMは物理モードなのか

RDMが何かはVMwareさんのマニュアルに書かれている通り、仮想マシンにvmdk(仮想ディスク)ではなく、直接物理ストレージのLUNをアクセスできる仕組みです。直接見えるのでTrueNASからHDDの情報(シリアルNoとか)が見えて管理できるようになるわけです。

vSphere での Raw Device Mapping の概要
Raw Device Mapping (RDM) は個別の vSphere VMFS ボリュームにあるマッピング ファイルであり、Raw 物理ストレージ デバイスのプロキシとして機能します。RDM があることで、仮想マシンはストレージ デバイスに直接アクセスして、ストレージ デバイスを使用することができます。RDM に...

RDMには、物理モードを仮想モードがありますが、仮想モードの場合TrueNASとHDDの間にvmkernelの処理が入るので直接ストレージが見えるわけではなくなるので物理を使っています。※仮想モードはそもそも検証もしていないのでTrueNASで動かくかどうかすらわからりませんが・・・。

https://docs.vmware.com/jp/VMware-vSphere/8.0/vsphere-storage/GUID-4B2479B1-541D-4FF4-865E-2EE711294478.html

vmdkとRDMの仮想モード・物理モードの違いは下記にまとめられています。

一番大きな点はRDMの物理モードはvSphereのスナップショットは使えません。

https://docs.vmware.com/jp/VMware-vSphere/8.0/vsphere-storage/GUID-60241ABD-CCED-452B-B213-817A6A44A935.html

非公式ではありますが、RDMの仮想モードを使わないように記載しているサイトもあります。

TrueNAS on ESXi with local storage
In my homelab I try to use as little electricity as possible, not just because I live in The Netherlands and electricity is expensive, mostly because the house ...

そもそも、TrueNASにRDM(とTureNASの仮想化)を使うこと自体をやめるような情報も多いので、本記事の内容もあくまで検証環境に留めるのがよさそうです。

TrueNAS VM won't see the disks created as RDM from SAN array
Background: - Testing environment only - Create TrueNAS as VM in vSphere 7.0 environment (enterprise scale with multiple hosts and IBM v7000 SAN array) - Create...
Resource - "Absolutely must virtualize FreeNAS!" ... a guide to not completely losing your data.
[---- 2014/12/24: Note, there is another post discussing how to...
TrueNas under ESXi and precautions
Newbie to TrueNas here As per the info @ I have created raw disks for my 2x4TB drives from ESXi v7.0 U1 to pass them through directly to the TrueNas VM Do...

事前準備

TrueNAS仮想マシンの準備

まず、ESXi上の仮想マシンにTrueNAS Scaleをインストールします。

インストール方法は、下記の記事にまとめました。

vSphere ESXi上にTrueNAS Scaleをインストールしてみた
どうも、Tです。 FreeNAS時代から、ストレージ回りを検証するときにライセンスフリーで簡単に使えることからちょくちょくつかっていま...

物理ディスクを非RAIDディスク変換

TrueNASにRDMするHDDは、RAIDアレイとしではなく個々のHDDとして認識する必要があるため、対象のディスクをnon-RAID(もしくはJBOD)に設定します。

下記は、PowerEdgeのiDRACから見たディスクの状態です。Physical Disk0:1:3~5の3本をRDMとして使用します。「非RAID」がnon-RAIDを表しています。

PowerEdgeの場合のディスクのRAID対応設定については、下記に記載されています。

物理ディスク モードをRAID非対応またはRAID対応に変換する方法 | Dell 日本

ディスク順番の特定

RDMするHDDもESXiから認識はされていますが、vSphere Client画面からはnaa.xxxxのようにストレージ毎の識別子で表示されます。

RDMの設定をするときもnaa.xxxの識別子を使いますが、物理的にどのディスクスロットかわかりません。厳密にはiDRACなどの管理モジュールやRAIDカードの管理ツールなどを見比べるとわかりますが、ESXiからのみでどのディスクスロットのHDDなのか確認していきます。

vSphere ClientからRAIDカードがどのアダプタ名で認識されているか確認します。

下記の画像では、PERCのRAIDカードが「vmhba0」というアダプタ名で認識されています。

次に各ストレージデバイスのランタイム名を確認します。

ランタイム名の詳細は、VMwareのマニュアル(パスベースの識別子)に記載されています。

ストレージ デバイスの名前と識別子
ESXi 環境では、各ストレージ デバイスは複数の名前で識別されます。

画像の例でいうと下記になります。

項目画像の部分説明
vmhbaAdaptervmhba0アダプタ名です。今回ではRAIDカードのアダプタ名になります。
ChannelC0ストレージに接続しているチャネル番号です。

non-RAIDの場合0で、RAIDアレイを作ると別の番号になります。

TargetT3ターゲット番号です。今回のRAIDカードでは、non-RAIDの場合スロット番号になるので、ディスクスロット3番目を表しています。

RAIDアレイを作成すると0から振られていました。

LUNL0LUN番号です。

ランタイム名の生成はドライバによっても変わってくるので、その機種によってどのような採番になるか事前に把握しておく必要がありますが、これで各naa.xxxxになっているHDDのディスクスロット位置を特定できました。

ランタイム名を1つずつ確認するのが面倒な場合、ESXiホストにSSH接続して下記コマンドを実行することにより、すべてのデバイスのランタイム名を確認することができます。

esxcli storage core path list

RDM設定

仮想マシンにRDMでHDDを割り当て行きます。

仮想マシンを停止し設定編集画面を開きます。

「新規デバイスを追加」->「RDMディスク」をクリックします。

RDMにできるストレージが表示されます。事前にランタイム名から確認していたディスクスロットで一番若いHDDを選択して「OK」をクリックします。

互換モードが「物理」になっていることを確認します。

「新規デバイスを追加」から同様の手順でRDMにするHDDを追加し、「OK」をクリックします。

TrueNASから確認

仮想マシンをパワーオンしTrueNASの管理画面にログインします。

ストレージからディスクをみるとRDMで設定した順番で認識されシリアルも表示されます。

※sdaはTrueNASのインストールディスク(vmdkの仮想ディスク)のためシリアルは表示されていません。

ディスクの詳細情報も表示できます。

zpoolの作成方法は割愛しますが、RDMのHDD3本でtest-poolを作ってみたところです。問題なく作成できました。

まとめ

国内外含め、あまり情報がなかったので書いてみましたが、あくまで検証環境用途ですね。構成が複雑になりすぎてトラブル時が怖すぎるので、本番環境では使いたくないところです。

スポンサーリンク
アドセンス1
アドセンス1
ブログランキング・にほんブログ村へ

シェアする

フォローする