自由を.
2011年度もついに終わり,明日から2012年度になりますね.
ちまきもようやく新天地での1年を終わり,次の1年を始めようか,という所です.
職場ではすっかり重要なポジションを占めてしまい,自身の持つプロジェクト以外に,予算の管理もしていたり(もちろん決済はできないんだけど),上司からの第一連絡候補になっちゃってたりと,大変です.
ともかく,年度の変わり目なので何かしよう,と思い立ち,iPhoneを買ってみました(なぜ・・・(笑)
まぁ,完全な衝動買いなんだけど,iPhone4Sの64GB版,黒色を買ってみました.
理由らしい理由というと,Androidに飽きたってのと,New iPadに食指が全く動かないので,試しにiPhoneを買ってみた,という感じですかね.
で.
このエントリーのタイトルを見てピンと来た人も居るかも知れないですが,実はSIMフリー版のiPhone4Sを買ったのでした(笑)
ちなみに香港版(MD258ZP/A)です.
Amazonだと82000円程度なので,日本で普通にSoftbankやauと契約して買うよりだいぶ割高に感じると思います.
ちまきは,EXPANSYSで購入しました.
送料含めて75000円程度.
ちなみに香港版かどうかは選べませんし,開封済みアクティベート済みでした(このあたりは国内で買っても似たようなもんですが).
サイト自体は日本語で使えるので,PayPal持ってればここで買うといいかも?
また,問い合わせ電話番号も日本の番号があります.
香港に転送されているみたいだけど(笑)
日本語のメールでも大丈夫そうなので,気になる人はどうぞ(笑)
発送自体は注文,支払い完了後すぐに開始され,ほぼ即日出荷されました.
Fedexで約3日で届いた感じですね.
ポータブルヘッドホンアンプとかと比べると,早くてびっくりします(笑)
ちなみに,回線は日本通信(b-mobile)のカメレオンSIM(microSIM)を使う予定.
ていうか,まだ届いてない罠(笑)
とりあえずWi-fiでも動いているので問題はないんだけどね(笑)
というわけで無事手元に届いたんだけど,なぜSIMフリー版を買ったのか,という話.
理由はいくつかあるんだけど・・・.
・テザリングしたい(E-mobileから脱却したい)
・アメリカで使いたい(プリペイドSIMで)
というあたり.
それから回線についても.
まずはカメレオンSIMのフラット1M(月額5400円,5GBまで,契約期間の縛りなし,通話不可)で運用しようと思ってますが,もしかしたらdocomoのXi(テザリングも通話も可能,月7GBまで)に移行するかもしれないです.
とりあえず費用の細かい計算とかはしてないんだけど,これで試してみようと思います.
32bitの壁
というわけで,結局MacBookPro Retinaを購入したわけだけど,早速Windows7で使っていたり(笑)
具体的にはWindows7 Pro x64をBootCampで使っています.
4物理コア(8論理コア),16GBメモリという構成なので,だいぶ快適です(笑)
普段は,外部ディスプレイとキーボード,マウスをつないでいるので,Retina的なメリットは享受していませんが(汗)
ちなみにケースはいつも通りsuonoのMODE(ココア)と,おそろいのアダプタケースですG(≧ω≦)。
お盆の帰省でも大活躍(笑)
MacBookPro RetinaにWindows7を載せた感想だけど,非常に快適,ということ以外に,HDMIからビデオ&音声出力ができたのはかなり便利でいいです(笑)
HD TVに接続して使うときもHDMIケーブル1本で済むようになりましたヾ(≧ヮ≦)ノ”
ROももちろん動きます(笑)
むしろ,OSX Lion上のParallels上で起動させたWindows7の上でもROを起動できました(笑)
OSXの操作感とWindowsの操作感の違いから,結局仮想マシンでの運用はやめてしまいましたが,「露店を出すために複数PCを起動する」の代わりとして,複数仮想マシンで起動する,というのは十分使える感じですね.
むしろWindows8のクライアントHyper-V(Hyper-V3.0)が利用可能になったら,ホスト,ゲストともにWindowsの仮想化環境を作る,というのもいいかもしれないな,と思います.
物理コアを2つ,メモリを8GB割り当てても,ホスト,ゲストともに快適に利用できそうです.
まぁまずはParallelsでWindows8を味見することになりそうだけど(笑)
ちなみに,OSXはLionのままだったりしますが,そのうちMountain Lionにしようかな?
そうそう,古いMacBook(Late2008 Unibody)は,Windows7 x64を入れて実家に寄贈しました(笑)
HDDからデータを吸い出すのが面倒だったので,HDDごと入れ替えた上に,Mountain Lionにアップグレードもしてあったりします(笑)
あんまり使ってもらえなさそうだけどね・・・(汗)
VMwareへお引っ越し
RetinaなMacBookProを買うときにMacに移住しようかなぁなんて言っていたんだけど,結局どうなったのか,という話.
もうタイトルで落ちも見えてるわけだけど(笑)
当初,Parallels Desktop 7をOSX上に導入して,BootCampのWindows7を動かしてみたんだども.
や,ばっちり動くんだよ?
なんだけど,結局異なるOS間でマウスとかを共有していたりするので,どうしても違和感があるのよね.
なので結局使わなくなってしまったのでした.
ここまではRetina MacBookPro購入直後に試していたんだけど,Windows8の発売と相まってWindows上に仮想化環境を構築しようと思い立ったのでした.
元々はWindows8に移行してクライアントHyper-Vを使って構築しよう,と思っていたんだけど,Windows8の評判があまりに悪いので,思い直してWindows7上にハイパーバイザを導入して構築することにしたのでした.
で,ハイパーバイザは業界最大手のVMware製品にすることに.
Mac用のVMware Fusion 5が5000円くらいだったから,Windows用もそれくらいかと思ったら,全然違ってた(笑)
VMware Playerだったら個人利用は無償なんだけど,スナップショット取れないとか仮想マシン作れないとか,いろいろ制約が多そう.
なので,真面目に使うならVMware Workstationな感じなんだけど,35000円くらい(汗)
どうしようかなぁといろいろ見ていたら,オンラインストアで日本円ではなくアメリカドルで購入すると$250(これに税金がかかります),プロモーションコードなども利用すると更に安く購入できるみたい.
結局さらに10%引きで購入してしまいました(笑)
現在はRetina MacBookPro上に,このVMware Workstation9をインストールして,仮想マシンを運用し始めました.
主にはWindows7 Pro x64(4コア,4GB)と,WindowsXP Pro(2コア,2GB)を使ってます.
さらにお試しでWindows8 Pro x64(2コア,4GB)も構築済みだったり.
まぁ普段はホストWin7+ゲストWin7でROを1つずつ,もしくはゲストWin7とゲストWinXPでそれぞれROを1つずつ,みたいな事をしてます(笑)
無駄の極み(笑)
ライセンス的には,新規に追加購入したWin7,元々持っていたWin2000+XPアップグレード,WinXP+Win8アップグレード,という使い方です.
そしてもちろんホストとしてWindows7 Pro x64が居るので,都合4台分のライセンスを1台の物理マシンで使う格好です.
なんだか大変な使い方だなぁ.
でも,当初の目的である仮想化環境構築は上手くいったし,VM上でもROを起動できる,違和感なくVM間,ホスト間を遷移できるなど,欲しかった環境が手に入った感じ.
うーん,満足(笑)
それにしても最近のノートって,こんなコトしても平気な性能なんだね・・・.
あ,あと個別のVM導入話なんかは,また今度書くかも?
いろいろ備忘録的に(笑)
それは空前の
相変わらずtwitterの後追いな感じですが,Kindleを購入しました.
具体的には,Kindle Paperwhiteです.
いわゆるE Inkを採用した白黒表示のモデルです.
職場の人が持っていたのを見た,というのと,約8000円という安さから購入してみたんですが,結果としてiPad miniを購入してしまう,というオチが付いてしまいました(笑)
何が気に入らなかったか.
一番の不満は本体記憶容量が2GBで,SDカードなどによる増設が一切できないこと.
動作がもっさり気味とか,(当たり前だけど)カラー表示できないことは納得できるんだけど,容量が少ないのはいただけない.
まぁ,文字を読む端末ってことなんでしょうが,ちまきみたいにコミックを中心に読もうとすると,あっという間にあふれてしまうのです(汗)
別に入れ替えて持ち歩けばいい,とも思うんだけどね.
ただ,普段からある程度持ち歩きたい,と思ってしまうタイプなので,2GBだとどうしても厳しい(汗)
で,結局Kindle端末としてiPad miniを買ってしまったのでした(笑)
さすが,64GBもあると快適です.
SlingPlayerも購入したので,Slingbox経由で録画番組やTVも楽しめるし,写真を持ち歩くこともできるようになったので,思いの外快適に(笑)
もともとiPad miniかRetinaディスプレイモデルのiPadかで悩んでいたんだけど,Kindle端末,という位置づけができたおかげで素直にiPad miniを選択できた感じですな.
とりあえず,買ったのも(笑)
まほろまてぃっく,魔法騎士レイアース,3×3EYES,宇宙家族カールビンソン,いいんちょ。,KaNa,マギーペール,飴色紅茶館歓談あたり(汗)
全部紙で持ってるけど,Kindle版で全巻買っちゃった(汗)
今は久しぶりな3×3EYESを読み返してるけど,次はカードキャプターさくらを買おうかな・・・(汗)
なんていうかもう,すごい勢いで買ってる(汗)
やばい勢い(笑)
むしろ,人に見せれないiPad miniになってます(汗)
ついつい
ホントに,ついつい,なんだけど.
いや,つい間が差してNASを新しくしてしまったのでした(笑)
それに伴い,芋づる式でいろいろやったので,ちょっとメモ(笑)
発端は,かつてNASトラブルが発生した際に購入したLandiskが,いい加減危険な状態であるため,リプレースを考え始めた,というところ.
もちろんHDDを入れ替えて綺麗にする,というのも可能なんだけど,遅い,うるさい,機能が少ない,という事も有って,まともなNASに引っ越すことにしたのでした.
なので,BuffaloとアイオーデータのNASはもちろん除外.
候補としては,ReadyNASかDrobo,もしくはQNAPの3種類.
ReadyNASは前の職場で使ったこともあるので,DroboかQNAPか,という所だったんだけど,直感でQNAPにしたのでした.
QNAPのNAS,TurboNASのラインナップには,HDDベイの数,液晶の有無などふくめいろいろバリエーションがあるんだけど,今回はTS-569Lというモデルにしてみました.
HDDが5本入る,液晶画面無しのSOHOモデルです.
5本,の理由は,RAID6(3D+2P)もしくは,RAID10+ホットスペアの構成を考えていたから.
もう,RAID5は絶対に信用しない(笑)
HDDは,Western DigitalのNAS向けHDD,REDシリーズ(WD20EFRX)を5本購入.
QNAPでも互換性を検証済みのモデルで安心です.
で,さっくり届いて.
さすがAmazonですなぁ.
いそいそと開梱して,NAS本体にHDDを装填していきます.
といってもトレイにネジ留めして挿すだけなんだけどね(笑)
見た目は小型のキューブPCです.
むしろデュアルコアAtom(2コア4スレッド)を搭載したPCなんだけどね(笑)
Ethernetポートは2つ,HDMI端子なんかも有って,起動時に画面表示したりもできます(笑)
ディスクを挿して起動すると,あっさり認識され,そのままRAID6アレイが自動で構築されているみたい.
液晶がないけど,他のPCからWeb管理画面に接続すると,有無を言わさず構築が始まっているっぽい.
まぁRAID6でいいか,ということで,このまま運用することにしました.
ちなみに,動作音はかなり静かな部類.
Landiskの音がかなりうるさかっただけに,これは静か.
普通のデスクトップPCより静かだと思います.
もちろんHDDを5台も積んでいるので,それなりに低音はしますが,ファンに起因する音はかなり静かです.
ちなみに無負荷状態で637rpmなので,ファンの音はほぼ聞こえないレベル.
とりあえずちゃんと動きそうだったので,Web管理画面を開いて.
機能をざっと眺めると,使わない機能がいろいろ起動していたので,全部停止.
ディスク管理画面を見ていると,iSCSIターゲット機能があるみたい.
iTunesサーバ,DLNAサーバ,FTPサーバも備えるほか,VPNサーバにもなり得る模様.
UPSとの連動もサポートしているみたいなので,これも安心.
ということで,Landisikからもりもりデータを転送して,実用を開始することにしたのでした.
MyCloudNas
QNAPのNASを導入して,通常のWindows用の共有ストレージとして運用を開始したんだけど,いろいろ機能を弄ってみよう,という状態だったわけですが.
NASを個人で使っている方々はおそらく誰もが思うであろう,外部から自宅のNASにアクセスしたい,という欲求を満たそう,という話です.
QNAPのNASには,MyCloudNasサービスというものが搭載されています.
これ,簡単に言うと,DDNSへの登録や,IPアドレスの更新,ルータの設定なんかを簡単に行ってくれる仕組みです.
これを使い,ISPより動的に割り当てられるIPアドレスをDDNSへ自動登録,更新し,外部から名前を使ったアクセスを行うことができるみたい.
この設定自体は,NAS管理画面のメニューから,ウィザードに沿って設定するだけで完了します.
ルータの設定もUPnP対応しているルータであれば自動でやってくれます.
さて,これで外部ネットワークからNASの名前解決ができるようになりました.
次にVPNを導入します.
仕事でユーザとして使うことはよく有りますが,サーバ側を管理したことはないので,どんなものだろう,と思っていたんですが,サービス自体は既にQNAP側に搭載されており,有効化&VPNユーザの追加をするだけでした.
ただ,VPNサーバとしてPPTPとOpenVPNの2種類が搭載されていたので,これは要選択です.
両方とも動作させる,という選択もあるんだとは思いますが,ちまきはよりセキュリティレベルの高そうなOpenVPNを選択しました.
課題があるとするとiOSデバイスからのOpenVPN接続は,標準でサポートされていない,という点.
ただし,ここも既に手が有り,AppStoreでiOS用OpenVPNクライアントが配布されていました.
ただ,このiOS用クライアントでは証明書と鍵による認証のみサポートされているようなので,この部分だけは注意が必要です.
さて,じゃぁ試してみよう,ということで,OpenVPNの公式ドキュメントを参考にiPhone5に証明書,鍵を追加しようとしました.
ここで,証明書や鍵がないことに気がつきましたが,QNAPのOpenVPNサービスの設定画面から「設定ファイルのダウンロード」ができることを思い出し,早速ダウンロードしました.
が,ここには設定ファイルと認証局の証明書(ca.crt)しか含まれておらず,クライアント側の証明書と鍵がありません.
OpenVPNでは,サーバ側,クライアント側共に証明書と鍵が必要で,クライアント側では,認証局自体の証明書と,自身(クライアント)の証明書を接続の際に必要としているはずです.
おかしいなー,と思いながら調べていると,どうやら証明書と鍵は(クライアントごとに)発行しないとダメな模様.
あちこち調べると,先達は自分でおれおれ認証局(自前のローカル認証局)を作成して,そこで証明書と鍵を必要なだけ発行している模様.
ここで考えた選択肢としては2つ.
1つは,QNAP上に認証局を作成する方法.
2つめは,手近なマシン上に認証局を作る方法.
QNAP上でやるのが一番楽かなーなんて思ったんですが,よく考えるとトラブルやアップデートなどでQNAP上の認証局は消滅する可能性が有り,その度に各デバイスの証明書を作り直す事になるため,これはやめました.
それ以外にも宅内LANに接続できない環境では証明書を発行できない,というのも気になった,という点も.
セキュリティ,という観点からいうと,証明局は宅内LANにあった方が望ましいとは思いますが,ここは利便性をとる形です.
てことで,手近なマシン上に証明局を構築することにしましたが,こちらはVMware Workstation上で動作するUbuntu12.04上に構築することにしました.
Windows上に構築してもよかったんだけど,VMの方がバックアップなんかがしやすく,使い勝手がいいとの判断です.
Windows上にいろいろソフトウェアを導入する手間もないしね!
てことで,Ubuntu12.04で作業します.
まずOpenVPNを未導入の環境の場合,OpenVPNの導入からです.
$ sudo aptitude install openvpn
これでOpenVPNが導入されるので,証明局他の作成環境を作りました.
ちなみに,途中でroot権限なんかが必要らしいので,
$ sudo -s
しています.
さて,適当に作業ディレクトリを作成してから作業開始です.
# mkdir OpenVPN_Keys
# cd OpenVPN_Keys
# cp -R usr/share/doc/openvpn/examples/easy-rsa/2.0/* .
これで認証局作成環境がコピーできたので,
# emacs vars
で設定ファイルを修正します.
修正箇所は下記.
export KEY_SIZE=2048
export KEY_COUNTRY="JP"
export KEY_PROVINCE="都道府県"
export KEY_CITY="市区町村"
export KEY_ORG="適当"
export KEY_EMAIL="適当"
KEY_SIZEは,この方が安全そうだったから,という程度です(笑)
これで初期設定ができたので,早速証明局を作ります.
# source vars
# ./clean-all
# ./build-ca
いくつか質問をされますが,varsも設定済なので,適当にEnterしていきます.
これが終わると,
認証局証明書:./keys/ca.crt
認証局秘密鍵:./keys/ca.key
が作成されます.
続いてサーバ証明書(QNAP用)も作成します.
# ./build-key-server [サーバ名]
こっちも適当に質問に答えていくと,
サーバ証明書:./keys/[サーバ名].crt
サーバ秘密鍵:./keys/[サーバ名].key
が作成されました.
続いて,Diffie Hellman(DH)パラメータの生成をします.
# ./build-dh
とすると,
DHパラメータ:./keys/dh2048.pem
が生成されます.
そして最後にクライアント用の証明書と鍵を作成します.
# ./build-key-pass [クライアント名]
とすると,
クライアント証明書:./keys/[クライアント名].crt
クライアント秘密鍵:./keys/[クライアント名].key
が生成されます.
ちまきは,ノート,iPhone5,いつの間にか買っていたiPad mini用に3つ証明書を作成しました.
あとは,これらをサーバ(QNAP)側,クライアント側に導入して動かす,という状態.
初回は結構手間がかかるのね(汗)
OpenVPN
さて,前回はQNAPでOpenVPNを使うために自前の証明局を作って証明書と鍵を発行するところまででしたね.
ということで,今回はいよいよQNAP側に証明書と鍵を導入してサーバとして機能させよう,というお話.
とりあえずQNAPのWeb管理画面からSSHによる接続を許可して,早速SSH接続して設定ファイルを眺めてみます.
/etc/openvpn/server.conf
これがどうやらサーバの設定ファイルのようで,証明書や鍵は
/etc/openvpn/keys -> /etc/config/openvpn/keys/
を参照しているようです.
なので,
/etc/config/openvpn/keys/
に,前回作成した証明書を置き,server.confを編集して参照するようにすれば大丈夫そうです.
編集箇所は,
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/myserver.crt
key /etc/openvpn/keys/myserver.key
dh /etc/openvpn/keys/dh1024.pem
の辺りで,これを自前のファイルを示すよう書き換えればよさそう.
で,実際に書き換えるわけだけど,データはUbuntuからQNAPのSMB共有フォルダ(/share/以下にある)に置いて,それをコピーしてくることにしました.
さっくりファイルをコピーして,server.confを書き換えたので,OpenVPNのサービスを再起動してみます.
# /etc/init.d/vpn_openvpn.sh restart
としてみると,特にエラーなどなく動作している模様.
念のために,ということで,QNAP自体を再起動して,いよいよクライアント側の設定です.
PCはローカルネットワークで動いているので,外部回線が利用可能なiPhone5から試すことにします.
OpenVPN公式のドキュメントを参考にしながら,iOS側の設定を行います.
まずはAppStoreでOpenVPNをダウンロードします.
ここで一旦PCにLightningケーブルで接続し,iTunesから設定ファイルを転送します.
転送するファイルは以下の4つ.
設定ファイル:openvpn.ovpn
認証局証明書:ca.crt
クライアント証明書:iphone5.crt
クライアント秘密鍵:iphone5.key
証明書と鍵は前回作成した物です.
また設定ファイルについては,QNAPの管理画面からダウンロードできるひな形をベースに,
cert iphone5.crt
key iphone5.key
を追記しています.
OpenVPN公式ドキュメントでは,設定ファイル内に証明書や鍵を埋め込む方法を紹介していたりしますが,わざわざ埋め込まなくても大丈夫そうなので,独立したファイルにしています.
正直埋め込むことでどれ程手順が簡略化されるか分からないですが・・・.
閑話休題.
さっそくiPhone5の無線LANをオフにして接続実験をしてみます.
OpenVPNアプリを起動するとiTunesから転送したファイルが認識されるので,そのまま接続をしてみます.
・・・が,上手く接続されません.
ログを見るとQNAPのOpenVPNサーバとの会話はできているようですが,証明書が違うといわれて,接続できていないようです.
おっかしいなぁ?と思いながら,SSHから確認してみると,サーバの設定ファイル(server.conf)が初期化されてしまっています.
しかし,自分で転送した証明書などは,ちゃんと/etc/config/openvpn/keys/以下に残っています.
不審に思いながらも調べてみると,QNAPは/etc/config/以下にあるものは消えないけど,それ以外の設定ファイルは(トラブル防止のために)初期化されるようなのです.
いろいろ手はあるみたいなんだけど,ここは手軽に,ということで・・・.
ca.crt -> myca.crt
ca.key -> myca.key
dh1024.pem -> dh2048.pem
myserver.crt -> myqnap.crt
myserver.csr -> myqnap.csr
myserver.key -> myqnap.key
になるように,設定ファイルにあわせてシンボリックリンクを作成してお茶を濁したのでした(笑)
QNAPを再起動してもこのシンボリックリンクは消えないようなので,目的は果たせそうです.
さて,これでいよいよ,ということでiPhone5から再度接続を試みてみます.
すると,先ほど上手くいかなかった認証が上手くいくようになりました.
が,やっぱりうまくつながらない.
サーバから設定を読み出している間にタイムアウトしてしまうようです.
これもいろいろ調べると,クライアント側の設定ファイル(openvpn.ovpn)に,以下を記述するといいようです.
reneg-sec 3600
早速記述して再度トライすると,やっと3G経由で自室のQNAPに接続されました.
QNAPのWeb管理画面からもOpenVPNユーザとして接続されていることが分かります.
いやー,無事つながって良かったよかった(汗)
ずいぶん手間取っちゃいました(笑)
Hypervisor
GWで実家にいる間にKindleの1巻99円祭りに巻き込まれ,かれこれ100冊近くは購入してしまったという展開ですが.
さて,QNAPのNASを使ったVPN環境の構築は無事完了したけど,さらにいろいろしたくなったのでした.
というのも,QNAPの設定画面でiSCSIの設定画面を見つけたからでした(笑)
具体的には,Retina MacBookPro上で稼働しているVM群を一部別のマシン,つまり専用のサーバに移設しよう,と考えたのでした.
サーバの要件としては,最低2,できれば4スレッド以上動作可能なCPU,VT-d対応,iSCSI Boot対応,16GB程度のメモリ,といったところ.
重要なのはやっぱりiSCSI Bootかな?(笑)
もちろんHypervisorはVMwareのESXi予定(笑)
まぁ,仕事柄VMwareと強く絡んでいるってのもあるけどね(笑)
てことでいろいろ見てたら富士通のPRIMERGY TX100 S3なる格安サーバがよさそう.
特にiSCSI回りの設定が簡単そうでいい感じ.
で,結果.
Ivy Bridge世代のXeon(E3-1220v2,3.1GHz,4コア4スレッド),メモリ24GB(納期の都合で4GBx2+8GBx2),ディスクレス,当然だけどOSレス.
これに後々Intelのサーバ向けNIC(EXPI9402PT)を追加して,合計4つのLANポートを持った構成です.
ESXiの動作実績もある無難なエントリーサーバですな.
というか,安かったから完全な衝動買いなんだけどね(笑)
てなわけで,さっくりESXi5.1を入れるわけだけど,まずはiSCSI Bootの設定です.
最初にQNAP上でESXiインストール用にiSCSI Targetを構成します.
といっても,管理画面からちょちょっとつついて2GBの領域を準備するだけ.
続いてTX100 S3のBIOS設定を変更して内蔵RAIDではなくiSCSIからのBootに変更,iSCSI Targetを指定します.
後はESXi5.1のISOイメージをCDに焼いて,CD Bootし,iSCSI Targetに向かってインストールすればOKです.
が,ウチではメモリが届くのが遅れた都合で,組込済みの2GBメモリのみだったので,インストールができなかったり(汗)
こんなチェックがあるんだねぇ・・・.
VMware Workstation上でインストール実験をしていたときには2GBメモリの割り当てでもインストール,起動できたから,てっきり行けるものだと思ってたのに・・・.
結局Amazonで即納可能な4GBx2枚(CK4GX2-D3UE1600)を慌てて購入して事なきを得たわけです(笑)
インストール後,BootしたESXiにvSphere Clientから接続してライセンスを登録.
とりあえずBoot用のiSCSI Target以外に,VM格納用のiSCSI Targetを作成し,Datastoreとして使えるようにVMFS-5でフォーマット.
ここに最新のパッチとオンボードNICのドライバをvSphere ClientのDatastore browserを使って転送しておきます.
ESXiのSSHを有効にしておき,リモートからSSHで接続して下記コマンドでパッチをあてます.
# esxcli software vib update -d /vmfs/volumes/datastore/ESXi510-201303001.zip
パッチをあてたら再起動します.
続いて先達の公開しているオンボードNICのドライバを導入します.
これで再起動すれば,NICが合計4つ見えるはずです.
あとはこのLANポートを使い方にあわせて設定すれば準備完了,というわけです.
ちなみに,QNAPはvSphere Client用のDatastore作成用プラグインを公開しているので,必要な人はどうぞ.
ただ,ウチの環境では1回しかDatastore作成が成功しなかったり,そもそもvSphere Clientが日本語環境上でDatastore作成できなかったり(英語のロケールを引数で指定すれば行ける)と,トラブルいっぱいでしたが(笑)
さて,残りはiSCSIのポートバインディング設定かな!
冗長化
さて,PRIMERGY TX100 S3にESXi5.1を導入して起動するところまで行ったので,後は実運用に入る準備,というところで止まってましたが(笑)
といっても,今回もまだ実運用に入る前の準備なんですが・・・.
具体的には,増設して合計4ポートあるLANポートを適切に設定する,というところです.
もともとTX100 S3には標準でLANポートが2つ付いていますが,ある意図をもって4ポートに増設しています.
もっともちまきの利用環境だとあまり意味は無いんだけどね!(笑)
ほら,いろいろやってみたいし(笑)
今回考えているのは,管理系LANに1ポート,VM用LANに1ポート,VM用iSCSIに2ポートのマルチパス構成,というようなもの.
事の発端は,NAS(QNAP TS-569L)がLANポートを2つもっていることから,vmdk(VMの実体)のあるiSCSIターゲットまでのパスを冗長化してみたい,と思ったため(笑)
ただ,せっかくやるなら実際に運用していそうな状況を考えてやろうと思ったのでした.
イメージとしては,(1)VMの生死に関わるデータパスとなるiSCSIに関しては冗長化する,というのと,(2)管理系,VM用のネットワーク,iSCSIを分離する,というものです.
この(1)と(2)を同時に満たすために,NICを増設し,合計4ポートにしてから構築してみました.
まず,iSCSIの冗長化について.
現状のハードウェア構成としては,ESXiのLANをiSCSI専用に2ポート,NASのLANも2ポート,HUBは安物のGigabit Ether対応の物,という感じ.
HUBが1つなので,スイッチ用のLSIや各機器の電源が壊れればそれで終わりですが,それ以外は全て二重にできる構成です.
で,具体的にこれらハードウェアを利用するための技術について調べてみました.
世の中的には,ネットワークパスを複数使って冗長化や広帯域化する技術はいろいろあるようで,ボンディングとかチーミングとかいうみたい.
iSCSIでもこういった技術を使うことができるみたいだけど,意外に癖がありそう.
というのも,例えばWindowsだと,iSCIS Initiatorのチーミングがサポートされないとか(MPIOを使うみたい),ESXiでも4.xや5.xではチーミングじゃなくポートバインディングを使うというナレッジベースがあったりするから.
ここでは,ESXi5.1での環境構築なので,VMwareの言うとおり,ポートバインディングを使ってやってみようと思います.
手順としては,公式ドキュメントに記載があり(リンク先はvSphere5.1かつvSphere Clientでの手順があります),ちょっとわかりにくい記述ですが,一応手順通りにやればESXi5.1でポートバインディングの設定を行えます.
ただ,ちょっとわかりにくかったので,予備知識と,簡単な手順を記載しておきます.
ESXi4.1の記事ですが,概念のイメージと,ESXi4.1での設定手順がこちらにあったので,ちまきも参考にしました.
おおざっぱな流れは以下の通りです.
(1)iSCSIに使う専用vSwitchを追加する.
(2)iSCSI用vSwitchで使う物理NICは,iSCISで占有したいものを全て(ちまきは2つ)登録しておく.
※(1),(2)はvSwitch追加時に同時にできるはず.
(3)物理NICと同じ数だけ(ちまきは2つ)VMkernelポートを追加する.
(4)各VMkernelポートの「NICチーミング」設定から有効なアダプタをそれぞれ1つずつ,占有する(重複しないよう1つずつになる)ように割り当てる(なので,(2)と(3)の数は同じでなければならない).
(5)ストレージアダプタに登録されているiSCSI Software Adapterのプロパティにある「ネットワーク構成」設定から,(4)で設定したVMkernelポートを全て(ちまきは2つ)登録する.
※ポートバインディング自体はこれで完了.
(6)ストレージアダプタに登録されているiSCSI Software Adapterのプロパティにある「動的検出」に,NASのiSCSI Targetサーバのアドレスを1つ(例えば192.168.1.100:3260)登録する.
(7)これでリスキャンすると,各データストアにそれぞれ複数のパスが表示されるようになる.
こんな感じの手順です.
ESXiに2つのiSCSI用VMkernelポート(192.168.1.10/11),NASに2つのiSCSIポート(192.168.1.100/101)があれば,4つのパス(192.168.1.10→100,192.168.1.10→101,192.168.1.11→100,192.168.1.11→101)が利用されるようになるはず.
確認は,各データストアのプロパティなどからできます.
残りは,管理系とVM用のLANの分離です.
iSCSIの設定を行った後だと,最初からあるvSwitchとiSCSI用vSwitchがあるはずなので,ここにVM用のvSwitchを追加し,このvSwitchに専用の物理NIC,仮想マシンのポートグループを追加すればOKです.
後はVM側の「ネットワーク接続」設定で追加した仮想マシンのポートグループを指定すれば完了.
こっちはだいぶ簡単ですね.
そうそう,MTU設定ですが,NAS,vSwitch,iSCSIのVMkernelポートなど,全て9000に変更しています.
vSwitchの設定変更も忘れやすいですが,NAS側の設定も忘れがちなので,ご注意.
ちなみにIPアドレスの割り振りは以下のようにしています.
管理系には,ESXiがiSCSI Bootする時に割り当てているIPアドレスをそのまま.
iSCSI用のVMkernelには192.168.1.100/101.
本当はSAN側をVLANで分けるのがいいんでしょうが,HUBに機能が無いのと,NASがiSCSI Target以外のこともいろいろやっているので分けていません.
VM用は適当にDHCPで割り当てています.
そんなところで,環境ができあがった感じです.
次はいよいよVMのデプロイをしていきたい!
VMお引っ越し
ESXi5.1の環境も作り終わり,iSCSI SANの構築,冗長パス構成なども作り終わったところで止まっていましたが,いよいよ実際に運用するVMをデプロイしていきたい!
(既に実運用もしていますし,もっと環境を大きくいじっていますが,blogへのポストが追いついてません(笑))
当初考えていた目標は,ESXi上でROを常時稼働させる,という妙な目標です.
ただ,VMware環境ではHyper-Vで提供されているRemoteFXのようなグラフィックスアクセラレーションを行うことができません.
nVIDIA GRIDのようなGPU仮想化ソリューションも提供されつつありますが,現状趣味で取り扱っているような個人では導入できない(TeslaなどのハイエンドGPUでしかサポートされていない)ため,今回はESXiのデバイスパススルー機能を使ってGPUをVMから利用します.
で,結論を先に書いておくと,RADEON HD6450を使ったパススルーによるGPU利用が,Windows7(64bit)環境のVMで利用可能でした.
ただ,Windows8(64bit)では成功しませんでしたし,RO程度であればESXiのGPUエミュレーションでも十分動作するので,露店を出す程度なら問題ない,という状況です.
なので,Windows7でのみ運用し,Windows8はしばし放置,という感じです.
Windows8でも動作した,なんて話しも聞いたんですが,詳細が分からなかったので必要性が高まるまで置いておきます.
さて.
まずちまきの場合は手元のVMware Workstation9で動いているVMの一部をESXiに引っ越すところからスタートです.
もちろんVMware Workstation上にも何台かのVMは残すんですが,WindowsとLinuxが1台ずつ有ればとりあえず問題ないので,残りのVM,ここではWindows8(x64)を引っ越すことにしました.
引っ越すといっても,VMware WorkstationからESXiに接続([ファイル]>[サーバに接続])してから,転送したいVMの管理メニューからアップロードする([管理]>[アップロード])だけです.
あとはESXiと転送先データストアを選んでやれば,アップロードされます.
ちなみに,アップロードすると,アップロードしたVMのライセンス情報などはクリアされるようなので,適宜アクティベートなどを行います.
ちまきは,VMware Workstation上にあったVMを削除し,ESXi上のVMにライセンスを移しました(電話による認証が必要でしたが).
ちなみに,ESXiからVMware Workstationへの移動のやり方はよくわかりません(汗)
vSphere Clientのデータストアブラウザを使えば,直接VMDKファイルなどは落とせるので,それを使えばたぶんVMware Workstationへの移行はできると思うけど・・・.
続いて,ビデオカードのパススルー設定なんかを行います.
まずハードウェア構成です.
富士通のTX100 S3pなるサーバに,Xeon 1220v2(内蔵GPU無し(重要))とメモリ24GB,2ポートNIC増設し合計4ポート,ディスクレスでiSCSI SAN Bootしています.
今回は,AMD(旧ATI)のRADEON HD6450を2枚用意しました.
しょぼいビデオカードなのは,サーバ側の電源容量と,発熱の関係です.
両方ともPCIe x16カードですが,x1スロットに挿して使っています.
とりあえず新しくVMを作成し,Windows7(x64)をインストールします.
vCPUは2コア1ソケット,メモリは6GB(8GBは失敗して上手くいかない)でパススルーなどせずに普通に構築します.
VMtoolsもインストールし,ここまでで通常利用としては完了なので,とりあえずスナップショットなどを取っておくといいかもしれません.
インストールして普通に動くことを確認できたら,ここからパススルーなどを行います.
まずvSphere Clientから,ESXiの[構成]タブへ行き,[ハードウェア]の[詳細設定]へ行き,[DirectPath I/O構成]の[編集]からパススルーしたいデバイスのチェックを入れます.
ここでは,GPUだけでなくHDMIオーディオも選択しておきます.
ちなみに,ちまきは2枚同時に追加したので,それぞれ2つずつ選択しますが,同じカードを2枚挿していると区別が難しいです(笑)
続いてWindows7 VMのタブから[設定の編集]を選び,[ハードウェア]タブから[追加]を選びます.
[PCIデバイス]で,先ほどパススルー設定したGPUとHDMIオーディオの2つを追加しておきます.
ここまででパススルー設定は完了なのですが,このまま起動するとBSODで起動しません.
vSphereにはpciHole.start=****を設定するようメッセージが出ますが,そのまま指定してもダメだったので,試行錯誤しました.
この試行錯誤の結果,結局8GBメモリのVMでは上手くいかず,6GBメモリでどうにか動きました.
ちなみに,追加設定は,[pciHole.start=1200]と[pciHole.end=2200]の2つで,それぞれWindows7 VMのタブから[設定の編集]を選び,[オプション]タブから[詳細]>[全般]の[構成パラメータ]に設定します.
ここまでいけば,VMが起動可能となり,BSODで死亡することもなくなります.
ここからは,VM側でのGPU利用とDirectX利用の設定です.
普通にドライバ入れてやれば行けると思っていたんだけど,これでまたはまりました(笑)
先達の技に従い,下記のように行います.
(1)とりあえずMirror-DTCなるリモート接続ソフトを入れます.
(2)パススルーしたデバイスが認識されて不明なデバイスとして通知されますが,とりあえず置いておいて,AMDのドライバセットを使ってCatalystとAudioドライバだけをインストールします.
ちまきはこの時,全部インストールしてしまったんだけど,これが間違いの元です.
うっかりインストールしてしまっていたら,CatalystとAudioドライバ以外を削除することで対応できます.
(3)ビデオカードにディスプレイをつないでからVMを再起動します.
RADEONはディスプレイの接続有無によって挙動を変えるので,(電源ONにしなくても良いが)スタンバイ状態のディスプレイをつないでおく必要があります.
これで,2ndディスプレイとしてRADEONが認識されます.
1stディスプレイはVMware VGAです.
(4)Mirror-DTCから2ndディスプレイに接続して,プライマリに設定します.
また,VMware VGAのデスクトップを非表示にすると,Aeroなども使えるようになります.
弊害もあるようですが,ちまきの環境ではWindows7(x64)なVMで問題なく動きました.
で,Windows8側なんですが,こちらはパススルーや構成オプションの設定などをしてやることで,GPUも認識するんだけど,どうも上手くリモート接続できません.
とりあえずESXiのGPUエミュレーションでROくらいは動くので目的は果たせているんだけど・・・.
まぁ,そのうち機会があればまた挑戦かな?