カテゴリー
ESXi

ESXi6.0でRDMを使う

ESXi6.0がリリースされてた

ESXi5.5でRDMがうまく使えない(ESXi上のFreeNAS9.3でHDDの容量がゼロで認識される)のであれこれいじくっている時に、ESXi6.0がリリースされているのに気付いたので、それを試してうまくいったというお話。

で、自分用のRDM設定メモ

1.HDDのシリアルを調べる

RDM(Raw Device Mapping)を設定するにあたってESXiが認識してるHDDのシリアル情報を調べる。

方法その1

vSphere Clientで「構成」タブ→「ハードウェア・ストレージアダプタ」クリック→HDDがぶら下がっている「ストレージアダプタ」を選択して「詳細」に出てくる物理デバイスの「識別子」がそれ。
右ボタンで「識別子をクリップボードにコピー」でOK。
vs

方法その2

sshでログインして

ls -l /vmfs/devices/disks/
:
-rw-------    1 root     root     1000204886016 Apr  5 06:23 t10.ATA_____ST1000DM0032D9YN162__________________________________S1Dxxxxx
-rw-------    1 root     root     1000203091968 Apr  5 06:23 t10.ATA_____ST1000DM0032D9YN162__________________________________S1Dxxxxx:1
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:2
:

でHDDの品番をたよりに目的のt10.ATAで始まる文字列を見つけてコピペ。

2.マッピングファイルを作る

次に、vmkfstoolsコマンドで物理デバイスを仮想デバイスにマッピングするファイル(vmdkファイル)を作る。

必要な情報は「/vmfsで始まるHDDの物理デバイス識別子」と「任意のvmdkファイルを置くESXiのデータストア上の適当な場所」。
具体的にはこんな感じ。ディレクトリ名とかはこうでなければいけないという事は無く、分かりやすい任意の場所に作れば良い。

vmkfstools -z /vmfs/devices/disks/(HDD物理デバイスの識別子)   /vmfs/volumes/(datastore)/(仮想マシンディレクトリ名)/(任意の名前).vmdk

-zオプションは物理互換モード指定。

ESXi5.5の時は最後に “-a lsilogic”とか指定したけど、ESXi6.0では不要みたい。指定したらエラー(Option –adaptertype is deprecated and hence will be ignored)が出てきて無視された。

3.マッピングされたデバイスを仮想マシンで使う。

vSphere Client上で、「仮想マシンのプロパティ」から「追加」→「ハードディスク」→「既存の仮想ディスクを使用」→「ディスクファイルのパス」で上で作ったvmdkファイルを指定→モードは「独立型」を指定。

とりあえず、ESXi5.5ではうまくいかなかったRDMがESXi6.0ではできたので良しとする。ちなみにHDDは2TBの容量の物。vSphere Clientで2TBを超えてもRDMの構成ができるかどうかはまだ試していない、というかそんな容量のHDDは手元に余ってはいない。

参考) VMware vSphere 6.0 Release Notes

カテゴリー
ESXi Software

ESXiに公開鍵方式のSSHでアクセスする

自分用のメモ。ESXiをvSphere Clientを使わずに使うための布石。

1.公開鍵の作成

アクセス元のマシン上で公開鍵(と秘密鍵)を作成する。ESXiはrootで使うので何も考えずにアクセス元もrootで作業する。

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ←デフォルトの場所で良ければそのままエンター
Enter passphrase (empty for no passphrase): ←パスワード無しでアクセスしたければそのままエンター
Enter same passphrase again: ←同上
Your identification has been saved in /root/.ssh/id_rsa. ←秘密鍵の名前
Your public key has been saved in /root/.ssh/id_rsa.pub. ←公開鍵の名前
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@Host
The key's randomart image is:
+--[ RSA 2048]----+
| . +  o          |
|. E    * .       |
| .      B .      |
|  .    * o       |
| . o. * S        |
|  +  . .         |
| o .  +          |
|. S. .           |
| .oo.            |
+-----------------+
#

作成した鍵の確認

# ls -l ~/.ssh
total 1
-rw-------  1 root  wheel  1679 Nov 17 19:16 id_rsa   ←秘密鍵
-rw-r--r--  1 root  wheel   395 Nov 17 19:16 id_rsa.pub ←公開鍵
-rw-r--r--  1 root  wheel   788 Nov 17 18:29 known_hosts
# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
Mxxxxxxxx
(省略)
xxxxxxxxxKmkkw==
-----END RSA PRIVATE KEY-----
# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNeTUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHoNfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host
#

秘密鍵は誰にも公開しないこと。

2.公開鍵をESXiに登録

作成しておいた公開鍵をESXiマシンにコンソール経由でコピペする。
ESXiのコンソール上で以下を実行。

# cd /etc/ssh/keys-root
/etc/ssh/keys-root # echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNe
TUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHo
NfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host >authorized_keys

登録した公開鍵を確認する。

/etc/ssh/keys-root # cat /etc/ssh/keys-root/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNeTUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHoNfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host
/etc/ssh/keys-root #

3.SSHでアクセスしてみる

秘密鍵のあるマシンからESXiにSSHでアクセスしてみる。

# ssh 192.168.1.xx ←ESXiのIPアドレス
The time and date of this login have been sent to the system logs.

VMware offers supported, powerful system administration tools.  Please
see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the
vSphere Security documentation for more information.
~ #

無事成功。

カテゴリー
ESXi Software

ESXiでvim-cmdが使えない

ESXiでSSH接続してvim-cmdが使えないという問題が出たので自分用のメモ

vim-cmdでエラーが出た

~ # vim-cmd vmsvc
terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc
Aborted
~ # vim-cmd vmsvc/getallvms
terminate called after throwing an instance of 'Vmacore::SystemException'
what():  No space left on device
Aborted
~ #

こんな感じでエラーが出ました。他のESXi環境では出たことが無かったのですが、色々ぐぐってみてもそのものズバリの情報が見つからず、エラーメッセージ自体からはどうやらメモリー不足らしい。16GBもメモリ実装してあるし、そのうちESXiが3GBも確保しているのにまだ足りんのか!と思って設定を見直すと、

mem3

リソースプールの設定中、Reservationのところでメモリ全部割り当てているのに気がつきました。全体のリソースアロケーションだとこんな状態でした。

mem0

Available Capacityが0MBの状態です。ひょっとしてこれ?

まさかのメモリー不足

試しにリソースプールのReservationを細かく変えてみるとここが数MBくらいAvailableになるとvim-cmdが動くようになります。Shellにログインしっぱなしでここの設定を変えてコマンド打つと動くようになったりエラーになったりとリアルタイムで変わります。つまり、ESXiのShellはたとえrootとは言えどもユーザー側のリソースを食うってことなんですね。

mem2

ということで、Reservationは本当に必要最小限の設定にしておくのが良さそうです。上図のような感じでWindows系には2GBとFreeBSD系には1GBと設定し直してみました。

mem1

全体のリソースアロケーションはこういう状態になりました。16GBの実メモリの内ESXiの取り分が3GBでユーザーの取り分が13GB。リザーブが3GBで残りの10GBは必要な人が取り合うという状態になりました。どうせユーザーはほぼ一人なのでReservedはゼロ設定にしてても実害は無いんでしょうけど。それにしても、お馬鹿な設定をしたことでいい勉強になりました。

 

 

 

 

カテゴリー
ESXi Software

ESXiでSSHを使う

ESXiでSSHを使う設定方法の自分用メモ

ESXiでの設定

ESXi-ssh1

まずESXiのコンソールからF2キーで「Customize System/View Logs」に入る。
 

ESXi-ssh2

次に「Troubleshooting Options」を選んでenterキー。

 

ESXi-ssh3

「Enable ESXi Shell」を選んでenterキーでESXi Shellを有効に設定。

 

ESXi-ssh4

「Enable SSH」を選んでenterキーでSSHを有効に設定。escキーで抜けて完了。
 

SSH接続してみる

ESXiのコンソールにIPアドレスが表示されているのでそこにSSHターミナルで22番アクセス。

ESXi-ssh5

ESXi-ssh6

ESXi-ssh7

ESXi-ssh8

これでSSH接続できました。