2007年 10月 30日 火曜日
やっぱり Sun がスキ!
Xen ベースの仮想化技術 Solaris xVM
新たにリリースされた仮想化技術である Solaris xVM をご紹介いたします。
Solaris x86/x64 ユーザの皆様、お待たせいたしました。 オープンソースソフトウェアとして開発されている、hypervisor 形式の仮想 マシンモニタである Xen が Solaris の一機能として実装されました。
OpenSolaris Community: Xen
http://www.opensolaris.org/os/community/xen/
Hypervisor 形式の仮想化は、ハードウェアと OS の間に、仮想マシン モニタとなるレイヤーを用意し、I/O 処理などは、すべて Hypervisor へ一任することで、複数の OS を同一筐体内で動作させることが可能 となる技術です。 VMware ESX Server や Xen, LDoms, Microsoft Virtual Server などが Hypervisor 形式の仮想化を採用しています。
Sun が提供する Xen hypervisor は、「Sun xVM Hypervisor」と呼ばれます。 Xen ベースではありますが、Sun による実装も入っています。
xVM の開発にて得られたものは、Xen オープンソースコミュニティ側にもコ ミットされており、現在は、Xen 3.0.4-1 がベースとなっていますが、Xen 3.1 ベースへの移行が近い将来に予定されています。
現時点の Solaris xVM は、実験的な実装を得て、次期 Solaris リリース 候補となる Nevada Build 75 にて、ソースコードがマージされ、OpenSolaris xVM として利用することができるようになっています。
また、以下の図は、仮想化技術を簡単にまとめたものです。
Solaris xVM は、Xen ベースなので Virtual Machines のカテゴリに分類されます。
2 つの仮想化モデル
Solaris xVM には、2 つの仮想化モデルがあります。
準仮想化(ParaVirtualization) モデル
1 つは、完全にエミュレートした仮想ハードウェア環境をゲスト OS に提供 する、準仮想化(ParaVirtualization) モデルです。
この方法では、ハードウェアへアクセスする場合は、Hypervisor を必ず呼び 出さなければならないため、Hypervisor を意識した処理が OS のカーネルに 実装されていなければなりません。
つまり、xVM の仮想ハードウェアに対応した OS が必要となりますが、Xen のコンセプトでは、もっともパフォーマンスが得られる仮想化モデルとなります。 準仮想化環境にて、Solaris を利用する場合は、Solaris xVM をサポートした Solaris Express Community Release Build 75 が必要となります。 Solaris 10 8/07 は、xVM が提供する仮想ハードウェア用のドライバなどが 提供されていないため動作しません。(Solaris 10 Update 5 で対応予定)
完全仮想化(FullVirtualization)
2 つ目は、完全仮想化(FullVirtualization) です。
HVM domain とも呼ばれ、こちらは、実在のハードウェアをエミュレートし、 ゲスト OS には、完全に CPU およびハードウェアを制御しているように思わ せるモデルです。 完全仮想化では、ゲスト OS が準仮想化のように hypervisor を意識してい る必要はなく、手を加える必要もありません。 ただし、完全仮想化を実現するには、Intel VT か AMD-V など、CPU 側が 提供する仮想化機能が必要となります。 また、実在のハードウェアをエミュレートする部分は、QEMU と呼ばれる CPU エミュレータの技術を利用しています。
完全仮想化では、Solaris 10 や Windows などが動作します。
無印の Ultra 20 や X4200 などに搭載されている AMD Opteron では、 AMD-V がサポートされていませんので、完全仮想化環境を利用することは できませんので、注意が必要です。 (M2 以降であればサポートしています)
以下の図は、Solaris xVM のアーキテクチャ図となります。
動かしてみよう
Solaris xVM を動かすのは、実に簡単です。
- Solaris Express Community Release Build 75 (SXCR Build 75) または Build 75 以降を入手
http://www.opensolaris.org/os/downloads/sol_ex_dvd/
- とりあえず、普通にインストールを行います
Solaris Express Developer Edition を選択した場合、インストール が失敗してしまうバグがあります
- 再起動後、GRUB 画面に Solaris xVM のエントリが出現!
- Solaris xVM を選択し、起動します。
なにやら、大量のメッセージが出力されますが、これは xVM kernel の起動メッセージとなります。
- xVM kernel が起動し、先ほどインストールした Solaris 環境に処理が引き渡され何事もなく Solaris が起動します。
これが Dom 0 として動作している Solaris 環境となります。
これだけです。
この状態で、すでに、Sun xVM Hypervisor が動作しています。
Dom 0 は、Domain 0 とも呼ばれ、Hypervisor および実ハードウェアを管理する特別なドメインとなり。
このままでは、Solaris xVM が動作しているかもわかりませんので、確かめてみましょう。
まず、svccfg コマンドにて、xVM のサービスを確認します。
4 つのサービスが起動していることがわかります。
# svcs -a | grep -i xvm
online 10:17:34 svc:/system/xvm/store:default
online 10:17:51 svc:/system/xvm/xend:default
online 10:17:51 svc:/system/xvm/console:default
online 10:17:59 svc:/system/xvm/domains:default
次に、Solaris xVM の管理インターフェースである xm コマンドを利用してみます。
Domain-0 が動作していることがわかります。
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1946 2 r----- 2937.8
xm top では、各 domain の状況を観察することができます。
また、起動時に表示されるメッセージは、xm dmesg で確認できます。
Dom U のインストール (ゲスト OS のインストール)
ここでは、Solaris Express Community Release Build 75 を利用した Domain U (ゲスト OS の領域をこのように呼びます)を作成してみます。
また、完全仮想化ではなく、準仮想化環境を作成してみます。
まず、mkfile にて、ハードディスクとして利用する空のファイルを作成します。
容量は必要な分だけ割り当ててください。
今回は、Core System Support にてインストールしてみますので、2G を割り当てることにします。
# mkfile 2g /usr/tmp/nv75xpv1.img
ドキュメントでは、/usr/bin/virt-install コマンドを利用したインストール方法が推奨されていますので、これに従った手順を示します。
http://www.opensolaris.org/os/community/xen/docs/virtinstall/
# virt-install -n nv75xpv1 -r 1024 -f /usr/tmp/nv75xpv1.img --nographics -p -l /Desktop/sol-nv-b75a-x86-v1.iso
それぞれのオプションは、次の意味となります。
-n : ゲスト OS ドメインの名前
-r : ゲスト OS に割り当てるメモリ量
-f : ゲスト OS が利用するハードディスク
--nographics : グラフィクスを利用しない
-p : 準仮想化を指定
-l : インストールに利用するイメージファイル
-f には、先ほど mkdir で作成したイメージファイルを指定します。 -l には、インストールに利用する SXCR Build 75 のイメージファイルを指定します。
準備ができたら、実行します。
いきなりインストーラ起動しますので、仮想環境などと気にせずにインストール作業を実施します。
# virt-install -n nv75xpv1 -r 1024 -f /usr/tmp/nv75xpv1.img --nographics -p -l /Desktop/sol-nv-b75a-x86-v1.iso Starting install... Creating domain... 0 B 00:07 SunOS Release 5.11 Version snv_75 64-bit Copyright 1983-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Configuring /dev Solaris Interactive Text (Console session) Using install cd in /dev/dsk/c0d1p0 Using RPC Bootparams for network configuration information. Attempting to configure interface xnf0... Skipped interface xnf0 Reading ZFS config: done. Setting up Java. Please wait... Beginning system identification... Searching for configuration file(s)... Search complete. Discovering additional network configuration...
インストールが終了すると、自動的に再起動が行われ、Dom U の ゲスト OS として稼働します。
Dom 0 側にて、稼働しているドメインを確認してみましょう。
nv75xpv1 の state に b があるので、起動していることがわかります。
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1946 2 r----- 3137.9 nv75xpv1 23 1023 1 -b---- 20.1
あとは、普通に Solaris が起動してくるので、login してみます。
# uname -a SunOS nv75xpv1 5.11 snv_75 i86pc i386 i86xpv
prtconf にて、ハードウェア構成をみると、特殊な構成であることがわかります。
# prtconf -D
System Configuration: Sun Microsystems i86pc Memory size: 1024 Megabytes System Peripherals (Software Nodes): i86xpv (driver name: rootnex) scsi_vhci, instance #0 (driver name: scsi_vhci) isa (driver name: isa) xpvd, instance #0 (driver name: xpvd) xencons, instance #0 (driver name: xencons) xenbus, instance #0 (driver name: xenbus) domcaps, instance #0 (driver name: domcaps) balloon, instance #0 (driver name: balloon) xdf, instance #0 (driver name: xdf) xnf, instance #0 (driver name: xnf) iscsi, instance #0 (driver name: iscsi) pseudo, instance #0 (driver name: pseudo) options, instance #0 (driver name: options) xsvc, instance #0 (driver name: xsvc) cpus, instance #0 (driver name: cpunex) cpu (driver name: cpudrv)
ディスクも特別なドライバ(xdf)が割り当てられています。
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0 <DEFAULT cyl 1020 alt 2 hd 128 sec 32>
/xpvd/xdf@0
ネットワーク構成は、以下のようになります。
virt-install では、自動的に bridge が利用されるように設定されます。 ネットワークインターフェース名も xnf0 と xVM に特化したものとなっています。
xVM では、Project: crossbow の Virtunal NIC 実装が利用されているのですが、そうなると、GLDv3 対応されたものが必須であり、今回、利用した環境では GLDv3 に対応していないため、利用することができませんでした。
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
inet 127.0.0.1 netmask ff000000
xnf0: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500
index 2
inet 192.168.0.10 netmask ffffff00 broadcast 192.168.0.255
ether 0:16:3e:41:aa:4a
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu
8252 index 1
inet6 ::1/128
以下、Dom U を管理するための基本的なコマンドとなります。
# xm start nv75xpv1 → ゲスト OS を起動します。 # xm shutdown nv75xpv1 → ゲスト OS をシャットダウンします State 項目が空の場合は、そのドメインは起動していないことを意味します。 -- # xm destroy nv75xpv1 → ドメインを強制的に終了させます。 # xm console nv75xpv1 →ゲスト OS ドメインのコンソールに接続します。 イメージとしては、zlogin -C ZONE のよう感じとなり、指定された ドメインのコンソールへ接続し、利用できるようになります。
ちなみに、GRUB メニューにて Solaris xVM を選択しない場合は、通常の Solaris kernel が起動します。
以上、簡単ではありますが、Solaris xVM についてご紹介してみました。
今回は、とりあえず Solaris xVM を動かしてみるというのが目的であり、 説明が足りないところなどがあるかと思います。ごめんなさい。
現状の Solaris xVM には、タイミングが必要とされる処理に不向き、激しい I/O 処理の発生、ハードウェアドライバの改良の余地ありなど、それなりの課題は残されています。 このあたり、どのように対応していくのかにも非常に 興味深く楽しみです。
多くの Linux ディストリビューションが、標準で Xen を含んでリリースされていますが、ようやく Solaris も仲間に入れます。
また、プロダクションレベルでの提供は、Solaris 10 Update 5 が予定されています。
UltraSPARC-T シリーズでは LDoms、x64 server (Inte, AMD) では Solaris xVM と、アーキテクチャの違いはありますが、どちらのプラットフォームでも Hypervisor による仮想化が利用できるようになりますね。
そして、データセンターの仮想化技術である Project BlackBox!! (11 月には日本に上陸しますね!)
Sun が提供する仮想化技術から、ますます目が離せない状況となっています♪
ちなみに、以下は、完全仮想化環境(HVM ドメイン)を実行している様子です。
以下は、Solaris xVM の情報源となります。
OpenSolaris Community: Xen
http://www.opensolaris.org/os/community/xen/
>> Solaris xVM の Portal site になります。
Solaris xVM は Xen ベースとなりますので、基本的な技術は Xen に準拠します。
http://xen.sf.net/
OpenSolaris xVM Documentation
http://www.opensolaris.org/os/community/xen/docs/
Solaris xVM の概要
http://www.opensolaris.org/os/community/xen/docs/xvm-idf-sf-sep2007.pdf
http://www.opensolaris.org/os/community/xen/docs/xvm-ktde-20070917.pdf
Introduction to OpenSolaris xVM Developers
http://opensolaris.org/os/community/xen/docs/developers/
>> Crash dump/DTrace にようる解析方法などが掲載されています。
Solaris xVM は、Nevada b75 に putback され利用可能です。
http://www.opensolaris.org/os/downloads/sol_ex_dvd/
>> 現状、問題があるため、パッケージ入れ替えが必要です。
http://dlc.sun.com/osol/on/downloads/6618392-packages/
Source code Nevada b75 にて、OS/Net 部分と分けられてリリースされています。
http://dlc.sun.com/osol/on/downloads/b75/
Posted at 03:27午後 10 30, 2007 by noriho in Sun | 投稿されたコメント[0]
Sun Ray Server Software 4.0 9/07 概要
先月、Sun Ray Server Softwareの最新版である、Sun Ray Server Software 4.0 9/07が発表されました。
今回は新機能一覧と、実際の画面のスナップショットを紹介します.
Sun Ray Server Software 4.0 9/07の入手
以下のURLよりダウンロード可能です。
http://www.sun.com/software/sunray/getit.jsp
新機能一覧
Sun Ray Server Software 4.0 9/07より、以下の新機能が加わりました。
1. Integrated VPN Client
別途Hardware VPN装置を用意することなく、Sun Ray Server Softwareの機能によりVPN接続が可能となりました.
対応機種はSun Ray 2/ 2FS /270 となります.
各ClientのPopup GUIからVPNの設定が可能です.
【画面例】
無線LAN設定

###
なお、Sun Ray 2N用の新しいFirmwareも公開されています。
この最新Firmwareを利用することにより、Sun Ray 2NにおいてもSoftwareによるVPN機能を使用可能です
【Sun Ray 2N用Firmware】
http://jp.sun.com/products/desktop/sunray/sunray2n/
###
2. Client configuration
Sun Ray Clientから「Stop」 + 「S」or 「M」キーを押すことにより、
Popup GUIが表れます.
このGUIから
.固定IP Addressの設定
.Sun Ray固有パラメーター(サーバーリスト,MTU等)の設定
.ネットワーク帯域幅の設定
等,
個別の設定を行うことができます。
###
デフォルトインストールではPop-Up GUI機能は無効になっています。
#/opt/SUNWut/sbin/utfwadm
コマンドを用いてPop-UP GUI用のFirmwareを用意する必要があります.
###
【画面例】
メインメニュー


3. Kiosk Mode
旧来CAM(Controll Access Mode)と読んでいた機能が一新され、
Kiosk Modeとしてリネームされました。
また、override kiosk mode policyという機能が追加されました。
今までのCAMSでは、システムポリシーとして、
カードなし:Solarisの画面といった、カードの挿入あり/なし といった単位でのポリシーでした。
カードあり:特定アプリケーション(Windows 等)の表示
今回のSun Ray Server Software 4.0 9/07より加わった、 キオスクでは、より細かく、カード単位で表示するアプリケーションを変更することができます。
例えば,以下のような設定が可能です.
カードなし:何も表示しない
カードあり:Windowsを表示
ある特定のカード:Solarisを表示
新しいキオスクポリシーでは、以下の3種類が用意されています.
(i)通常
(ii)キオスク
(iii)デフォルト
(i)通常 (== キオスクでは無い)
システムポリシーに関係無く、 通常のSolaris画面にアクセスすることができます。
(ii)キオスク
システムポリシーに関係無く、 キオスクに登録されたApplicationが立ち上がります。
(iii)デフォルト
システムポリシーの設定に基づいたApplicationが立ち上がります.
上記3種類の設定をカード一枚毎に登録することができます。 そのため、ある特定のカードを挿入した時だけ、 他とは違う画面を出すことも可能になります。
4. Security enhancements
Solaris10 Trusted Extensionsとの連携が可能となりました。 Trusted Extension専用のバイナリも公開されています。
5. Microsoft interoperability
Windows接続用ソフト,Sun Ray Connector For Windowsがバージョンアップし、Vistaにも対応しました(RDP5.2).
また、画面転送能力も向上しました.
6. Accessibility and usability enhancements
Admin GUIの画面が新しく変わりました。
新しくJSPを採用した画面で、Sun N1 System Manager等、
最新の管理ツールと似通った画面となっています.
【画面例】
トップ画面
システムポリシー設定画面
7. Quality improvements for Sun Desktop Manager(SDM)
SDMの品質向上が行われました.
8. その他
Sun Ray1g等、旧来のクライアントに今回のSRSS4.0のFirmwareを適用すると、
OSDアイコン等の表示がSun Ray2と同じになります.
Posted at 12:01午後 10 24, 2007 by yukki in Sun | 投稿されたコメント[2]
UltraSPARC T2のコア
待望の UltraSPARC T2 プロセッサ搭載マシン Sun SPARC Enterprise T5120/5220
が発表されました。
さまざまなメディアでこの T2 プロセッサの情報が
流れておりますが、今回はもう少し掘り下げて T2 プロセッサのコアに関する情報です。
まずは T2 プロセッサのコアブロック図をご覧下さい。
詳細を知りたい方は OpenSPARC に掲載されている下記 URL の資料を参照。
http://www.opensparc.net/pubs/preszo/07/n2isscc.pdf

IFU - Instruction Fetch Unit
EXU - Integer Execution Units
LSU - Load/Store Unit
FGU - Floating-Point/Graphics Unit
SPU - Stream Processing Unit
TLU - Trap Logic Unit
MMU - Memory Management Unit
HWTW - Hardware tablewalk
ここで T1 プロセッサと比較して T2 プロセッサのコアに関する大きな改善ポイント
を纏めてみました。
1. 各コアの中に一つづつ FPU (浮動小数点演算ユニット)が入った。 2. 暗号化処理機能の強化で SPU が入った。 3. EXU (整数演算ユニット)が二個になった。
項目1と2のポイントは既にご存じの方も多いと思いますが、 項目3の EXU(整数演算ユニット)が2個になった事をご存じでしたか?
この二個の EXU(整数演算ユニット)は、8個のスレッドを 0 - 3 と、4 - 7 の 二つにグルーピングしてそれぞれ処理を担当します。
T2 プロセッサが発表された当初、コアの数が変わらずスレッド数が倍に増えた という情報から演算ユニットがボトルネックになるのを気にしていたのですが、 そこはきちんと改善されていたんですね。
そこで気になるパフォーマンスですが、下記 blog にまとめて掲載されております。 SPECint_rate2006, SPECjbb2005, SPECjAppServer2004, SAP-SD 2-Tier benchmark など気になる情報が満載で、1 ソケットのパフォーマンスで比較すると他社 CPU より もパフォーマンスが相当よいです。
http://blogs.sun.com/bmseer/
Posted at 06:02午後 10 18, 2007 by Naoyuki Yamada in Sun | 投稿されたコメント[0]
