第4回 では、
Solaris 上でMicrosoft Windowsを使う方法をご紹介しましたが、今回はもうひとつのメジャーなOSである、Linuxを動かしてみましょう。
Solaris上でLinuxを動かす必要はあるの?
単純に考えると意味の無いことをしているように見えますが、Linux用にはあるけれどSolaris 10用に用意されていなかったアプリケーションソフトウエアやデータベースソフトウエア、Solarisには対応していないがLinuxには対応しているハードウエアデバイスが使えるようになるので、アプリケーションがまだまだ少ないSolaris 10 x86環境にとっては、とても強い味方になるでしょう。
Solaris上でLinuxを動かす方法はあるの?
Solaris 10上でLinuxアプリケーションを動かすことは、昔はlxrunというものが存在していました。しかし、今では第4回 でも触れましたSolarisコンテナ を使用したBrandZという環境を利用することで、簡単に実現することができます。
このBrandZは、現在公開されているSolaris 10 11/06では利用することができません。次回以降のアップデートで利用できるようになるそうですが、今回はBrandZ環境をすぐに利用することができる、OpenSolaris を使用することにします。
まずは必要なソフトウエア(OS)を入手しよう
BrandZを利用するためには、BrandZが使える版のSolarisを入手する必要があります。先にも書きましたが現在のSolaris 10 11/06では利用することができないので、Open Solarisのコミュニティ からSolaris Express, Community EditionまたはSolaris Express, Developer Editionを入手します。BrabdZが使用できる版は、Nevada Build49以降になりますので、それ以降のものを入手してください。今回は最新のNevada Build60を使用しました。
次に、Solaris上で動作させるLinuxを入手します。現在のところBrandZで動作するLinuxカーネルは2.4となっていますので、商用パッケージではカーネル2.4のRed Hat Enterprise Linux 3 AS / ES / WS を、フリーのコミュニティ版であれば、CentOS 3 をダウンロードします。それぞれダウンロードしたものはメディアに書き込んでおきます。DVDドライブが付いているPCであれば、メディアはDVDにしておくのが良いでしょう。Linuxの場合、CentOSのコミュニティにCDイメージをDVDイメージに変換するツールmkdvdiso.sh が用意されていますので、それを使用してあらかじめDVDにしておきます。
これでBrandZで使用するソフトウエア(OS)は準備ができました。
注意:使用できるLinuxは、/usr/lib/brand/lx/distrosディレクトリ内に用意されているものだけです。一度確認をしておきましょう。
インストールその1:Open Solarisのインストール
BrandZを動かすためには、BrandZが使用できるSolarisをPCにインストールする必要があります。インストールは既存のOSに対してアップグレードインストールでも、新規に入れなおす形でもかまいません。
インストールができたら、Solarisコンテナが動作しているか確認します。以下の例のように表示されれば、Solarisコンテナは動作しています。
インストールその2:BrandZ環境の作成
Solarisコンテナが使えることを確認できたら、いよいよBrandZ環境を作ります。細かい説明はマニュアル (のBranded Zonesの章を見ると良いでしょう。)に譲ることとして、とりあえず簡単に作る場合には以下の手順に記載したものだけ設定すればOKです。
BrandZを作成するディレクトリを用意します。パーミッションも変更してください。
# mkdir -p /export/zone/rhel3u8
# chmod go-rx /export/zone/rhel3u8
#
Linuxを入れるBrandZのゾーンを作成します。設定する項目はいろいろとありますが、最低限以下の設定をすれば使用することができます。この手順は、上記マニュアルにも「Configuring the lx Branded Zone (Tasks)」として記載されています。
# zonecfg -z rhel3u8
rhel3u8: そのような構成済みゾーンはありません
'create' を使用して、新しいゾーンの構成を開始してください。
zonecfg:rhel3u8> create -t SUNWlx ゾーンの作成(-tを指定 ※1)
zonecfg:rhel3u8> set zonepath=/export/zone/rhel3u8 ゾーンの置くパスを指定
zonecfg:rhel3u8> set autoboot=true ゾーンの自動起動を指定
zonecfg:rhel3u8> add net ネットワークインターフェースの追加
zonecfg:rhel3u8:net> set address=192.168.0.12/24 IPアドレス設定
zonecfg:rhel3u8:net> set physical=ertls0 使用するネットワークインターフェースを指定
zonecfg:rhel3u8:net> end
zonecfg:rhel3u8> verify 設定の確認
zonecfg:rhel3u8> commit 設定の書き込み
zonecfg:rhel3u8> exit ゾーンの作成終了
#
※1 -tは./etc/zones/SUNWlx.xmlのテンプレートファイルを使用する指定です。SUNWlx指定だと、zone name="default" zonepath="" autoboot="false" brand="lx"が指定されています。
ゾーンを作成するときに通常使用するテンプレートでは、上記の指定の中の"brand"が存在しません。また、BrandZのテンプレートには、"inherited-pkg-dir directory"は存在しません。
インストールその3:Linuxのインストール
BrandZ環境へのLinuxのインストールは簡単です。Linuxのbootメディアをドライブに挿入し、以下のコマンドを実行するだけです。DVDメディアの場合は、Linuxのインストールが完了するまでメッセージも何も出ない画面が長く続きますが、途中でキャンセルなどせずにじっと我慢の子であってください。途中でキャンセルすると、また最初からやり直しが必要です。
zoneadm -z ゾーン名 install -d インストール元 インストールタイプ
インストールタイプは以下のようになっていますので、利用したいタイプを指定してください。何も指定しなかった場合は、desktopになるようです。
インストールタイプ
構成
core
zoneの起動に最低限必要なパッケージのみ(最小インストール)
server
coreにサーバパッケージを追加
desktop
serverパッケージにデスクトップで使用するパッケージを追加
development
desktopに開発関連のパッケージを追加 ※マニュアルやドキュメントでは、developperになっていますが、developmentが正しいオプション指定です。
all
すべてのパッケージをインストール(最大インストール)
ここで注意することは、Red hat Enterprise Linux 3やCentOS3をインストールするときには、追加パッケージの指定などもできるのですが、BrandZのデフォルトのままではそれができません。もしどうしても独自のインストールをしたい場合には、/usr/lib/brand/lx/distrosの中にある拡張子が".distro"のファイルと"rhel_centos_common"のファイルを編集してください。
インストール実行例:CentOS3.8を使用した場合
# zoneadm -z rhel3u8 install -d /cdrom/cdrom0 all
Installing cluster 'all'
Would you like the system to eject the final install CD when
installation of 'rhel3u8' is complete? ([y]/n)
y
The final install CD WILL be ejected.
You will need CDs 1 - 3 (or the equivalent DVD) to
install CentOS 3.8.
Installing miniroot for zone 'rhel3u8'.
Attempting to locate 30 packages...
Installing 30 miniroot packages...
:
中 略
:
Please insert CentOS 3.8, CD 2, or a
CentOS 3.8 DVD in the removable media
drive and press .
cdrom0 /dev/dsk/c1t0d0s2 ejected CD-ROMを入れ替えて、[Enter]キーを押す
:
中 略
:
Please insert CentOS 3.8, CD 3, or a
CentOS 3.8 DVD in the removable media
drive and press .
cdrom0 /dev/dsk/c1t0d0s2 ejected CD-ROMを入れ替えて、[Enter]キーを押す
:
中 略
:
Completing installation; this may take a few minutes.
Setting up the initial lx brand environment.
System configuration modifications complete.
cdrom0 /dev/dsk/c1t0d0s2 ejected
Installation of CentOS 3.8 to zone
'rhel3u8' completed 2007年03月29日 (木) 22時35分07秒 JST.
Installation of zone 'rhel3u8' completed successfully.
Details saved to log file:
"/export/zone/rhel3u8/root/var/log/rhel3u8.install.1718.log"
#
終了のメッセージが表示されれば、BrandZ上のLinuxインストールは完了です。
BrandZ上のLinuxを起動する
インストールが完了したBrandZ環境上のLinuxを起動するには、通常のSolarisコンテナ上で動作するSolarisと同じで、以下のコマンドを実行するだけです。
# zoneadm -z rhel3u8 boot
コンソール接続(後述)している場合には、Linuxでおなじみのブート時のメッセージが出てくるはずです。
起動したかの確認は、以下のコマンドを使用します。作成したBrandZのゾーン名が表示されれば、正常に起動しています。
# zoneadm list
global
rhel3u8
#
BrandZ上のLinuxを使用してみる
起動が完了したBrandZ環境上のLinuxにログインするには、通常のSolarisコンテナ上で動作するSolarisと同じで、以下のコマンドを実行するだけです。
# zlogin rhel3u8
[ゾーン 'rhel3u8' pts/5 に接続されました]
[root@rhel3u8 root]#
なお、コンソールログインする場合には、-C オプションをつけてください。
# zlogin -C rhel3u8
[ゾーン 'rhel3u8' コンソールに接続しました]
CentOS release 3.8 (Final)
Kernel 2.4.21 on an i686
rhel3u8 login:
BrandZの環境にログインできたかどうかは表示されたプロンプトでわかりますが、以下のコマンドで実際にどうなのかも確認してみましょう。
[root@rhel3u8 root]# uname -a
Linux rhel3u8 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux
[root@rhel3u8 root]#
間違いなく、BrandZ上のLinuxが実行されていることがわかります。(カーネルバージョンにマイナーバージョンなどが出てこないのと、"BrandZ fake"と表示されています。)
Linuxパッケージのアップデートを行い、最新の状態にしてみる
CD-ROM/DVD-ROMからLinuxを入れただけではパッケージが最新の状態になっていませんので、ネットワークからアップデートを入手し適用していきます。
Red Hat Enterprise Linuxの場合はRed Hat Networkへ登録し、その中でマシンを登録することで利用できるようになります。
CentOSの場合は、yumを使用してアップデートをします。以下の例ではCentOS3で実行する場合の例になります。
まず、GPG-KEYをimportします。
[root@centos3u8 root]# rpm --import /usr/share/doc/centos-release-3/RPM-GPG-KEY-CentOS-3
[root@centos3u8 root]#
次に、アップデートを実行するだけです。BraldZ上のLinuxですが、パッケージのアップデートが問題なく適用できます。(kernel modulesに関連するものはBrandZに影響するのかfailします。)
[root@rhel3u8 etc]# yum update
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
ruby-docs-0-1.6.8-9.EL3.8 100% |=========================| 20 kB 00:00
samba-client-0-3.0.9-1.3E 100% |=========================| 12 kB 00:00
openoffice.org-0-1.1.2-38 100% |=========================| 98 kB 00:00
:
中略
:
[update: ncompress 4.2.4-39.rhel3.i386]
[update: mailman 3:2.1.5.1-25.rhel3.7.i386]
Is this ok [y/N]: y
Downloading Packages
Getting php-mysql-4.3.2-39.ent.i386.rpm
php-mysql-4.3.2-39.ent.i3 100% |=========================| 31 kB 00:00
:
中略
:
-font-utils 4.3.0-115.EL.i386 ncompress 4.2.4-39.rhel3.i386 mailman 3:2.1.5.1-25.rhel3.7.i386
Transaction(s) Complete
[root@rhel3u8 etc]#
アップデートを自動実行する場合には、以下のように設定をします。この例もyumの場合です。
[root@centos3u8 root]# chkconfig yum on
最後にBrandZ上のLinuxはパスワードが設定されていません。そのため、パスワードを設定しておきます。
[root@centos3u8 root]# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@centos3u8 root]#
これで、準備は完了です。BrandZ上のLinuxでは、サポートされていないコマンドやオプションなどもいくつかありますが、ほぼLinux環境は使うことができますので、いろいろなソフトウエアを入れていじってみてください。
Let's報告
今回はソフトウエアの使い方が主でしたが、新しいハードウエアにSolaris10のインストールができましたら、ぜひHCL for Solaris OS に報告しましょう。また、これからチャレンジする人には、強い助っ人になることと思います。
また、OpenSolarisコミュニティで提供されているOSやパッケージを使用したときは、動作の可否や不具合などがあればOpenSolarisコミュニティにぜひ報告をしましょう。これからのOSやパッケージなどの改善に役立つことでしょう。
サーバだけではなくクライアントでもSolaris、広がるといいですね。
本記事は、サンのユーザ様自らの体験をお寄せ頂いたものであり、サン・マイクロシステムズ社としての公式情報ではありません。
※著者のタイトル、所属等は、執筆当時のものであり、現在と異なる場合があります。
また、日本サン・ユーザ・グループは2007年6月をもって休会しております。
ページ先頭へ