openSUSE で作るシンクライアント

SSD は仮想環境で実力を出すか SUSE+XEN で検証してみた

実際に SUSE + XEN 環境に SSD を搭載し、Windows 7 を仮想化してみると、 準仮想化ドライバ Novell Virtual Machine Driver の効果もあり「爆速シンクライアント」が出来上がってしまいました。シャットダウンから再起動が完了するまでまず最大2分もあれば十分だし、 あの非常に重たいグラフィックスソフトGIMP 2.x や LibreOffice などの一般的なオープンソースソフトウェアの起動も非常に快適です。

ということで、電源入れて、トイレに行ってコーヒー持ってきたらやっと立ち上がるくらいの古いXPマシンはゴロゴロしているけど誰も最近使わなくなったし、捨てるにもお金かかるし、このところの不景気で予算は出ないし、セキュリティも心配だし。ということで古いPCに無料の openSUSE をインストールして仮想マシン上の Windows をシンクライアントとして利用してみようというご提案です。openSUSE なら無料だし、rdesktop を使う程度であれば、それほどメモリは必要としません。

-rdesktop-
今回は openSUSE 11.4 を使いました。 YaST > Software Management から rdesktop を Search してチェックを入れると rdesktop パッケージがインストールされます。

また、xdm を有効にするため YaST > System > Runlevel > Expert オプションから Default RunLevel を 5 (XDM Display Manager 通常デフォルトです) に設定します。
openSUSE で作るシンクライアント_a0056607_1955232.jpg

CUI 版 YaST の画面です。

-ユーザの自動ログイン-

YaST2 > Security and Users から user>guest を作成します。Expert Options > auto login と Passwordless login を Enable にします。guest ユーザには、ユーザの知らないパスワードを任意に設定しておくだけです。

/home/guest/.bash_profile に

rdesktop -f My-Windows7-ip-address
exit


の2行を加えます。 -f は Full Screen オプションです。

PCを起動すると、自動的に Windows のログイン画面までユーザの介在なしに Windows ログイン画面まで進めることが出来ます。


openSUSE で作るシンクライアント_a0056607_9123889.jpg

画面は英語ですが日本語パッケージを入れると日本語表示されます。

rdesktop が終了すると exit するため、そのまま Linux のセッションは終了します。

-Windows 7 の設定-
Windows 7 の次のグループポリシーを設定します

> gpedit > コンピュータの設定 (Computer Configuration)
+> (Administration Template)
++>(Remote Desktop Service)
+++> ( Remote Desktop Session)
+++++ >(Security Layer ?)
+++++ > (Enable)」 / Security Layer > Dropdown> RDP

+++++>また同じ階層に Remote Desktop の「切断」を無効にするパラメータもあります。


また同じ階層に Remote Desktop の「切断」を無効にするパラメータもあります。
openSUSE で作るシンクライアント_a0056607_1965572.png

これで、ユーザはセッションを終了するか、画面ロックして離籍する以外の方法はなくなります。5人で2人分しかほとんど使わない、というリソースを無駄にしたくないのなら、この設定をしておくのが良いでしょう。


Windows 2008 R2 を使う場合はこちらの記事を参考にしてください。

Windows 2008R2 の Remote Desktop と eDirectory の Password を一致させる: Thin Client 実現への一歩目
ただし、Terminal Service のライセンスや、「サーバー用アンチウィルス」などのアプリケーションのライセンスが高価な場合もあります。しかし、接続する先の IP アドレスがひとつで済むので、大量導入する場合は2008R2 サーバを使ったほうが良いでしょう。

このような感じで rdesktop を終了させようとするとログアウトするか、スクリーンロックするしか方法がなくなります。
openSUSE で作るシンクライアント_a0056607_1974160.png


ログアウトすると openSUSE の XDM のログイン画面に戻ります。ここからPCをシャットダウンするか、再度 guest ログイン、または root ログインするしか方法はありません。

-再起動のバッチファイルを作る-

echo off
echo 再起動します。
pause
shutdown -f -r -t 0


-f (force) -r(Reboot) -t 0(0秒後)です。

を記述した bat 拡張子のファイルのショートカットを C:\user\default\AppData\roming/Microsoft\Windows\StartMenu\programs の中に作っておけば、新規に登録したユーザはこのメニューでセッションを再起動できます。

必要であれば -f を使わず「開いているファイルがあるので終了できない」とか pause を入れて確認するとか、-t のオプションに数秒のウエイトを入れるなどの工夫は検討して下さい。

-s(シャットダウン) を記述すると、XEN の管理者がコンソールから xm create する必要があるので書かないことです。

※ちなみに ping -t コマンドで上のバッチファイルを実行してタイムアウト(シャットダウン)してから Ping が帰ってくる(再起動して通信回復)までの時間は 53 秒でした。BIOS ブートも必要ないので当所でテストに使った「低予算、低カロリー、低姿勢」のSUSE+XEN 仮想+SSDで構築した XEN 上のシンクライアントはちょっと驚くべき速さです。ちなみに同じ操作をHDDに構築した Windows(ただしXP) は1,45秒です。条件が違うので一概には言えないのですが少なくとも再起動に必要な時間を半分まで減らせるということですね。

--
確かに、クライアントを100台購入するほうが安いか、100台分の既存のPCをシンクライアント化して導入したほうが安いか、議論はあるでしょう。特に SSD のアクセラレータを導入した場合は、SSDが消耗品である以上、コスト高の面もあります。1台のサーバで最大何人のセッションが維持できるかもノウハウが必要です。

しかし、ユーザが BYOD を欲しがっている点や、普段社内で作業するユーザが少なく、一人一台買い換えるコストを考えると考慮しても良いところもあります。

また、ユーザが利用しない深夜に xm shutdown/create コマンドを cron 実行して(ただし Novell の Virtual Machine Driver - SLES ユーザには無償:が必要です)ユーザ環境をバックアップしたり、利用状況に応じて実ハードウェアのロードバランスを考慮して再配置できる点などのメリットもあります。

しかし rdesktop が RDP 6.0 相当なので Windows 7 のウリである Aero が動きません。平板でちょっと雑な画面です。もっとも Windows 8 はもっと味気ない3Dなしの画面になるようなので、古いPCを再利用しようと思えば、これでいいのかもしれません。

※ openSUSE 12.2 で実際動作させている動画です。
penSUSE12.2でシンクライアント

openSUSE の日本語サイトに USB メモリへインストールする方法がありました。こちらもご参考ください。
Installing SuSE on External USB Drive(日本語)

お問い合わせ
islandcenter.jp
by islandcenter | 2012-09-24 07:43 | SUSE | Comments(0)