2006年 4月 26日 水曜日
やっぱり Sun がスキ!
sfpDB
Blueprint 紹介
Solaris Fingerprint Database
The Solaris Fingerprint Database - A Security Validation Tool for Solaris Environment System Files本 Blueprint は、Solaris Fingerprint DataBase (sfpDB) について詳細が記載 されています。 sfpDB とは、Sun が提供している MD5 による Solaris システムファイルのハッ シュ値データベースです。 このデータベースと照合することで、システムファイルが書き換えられていない かを確認する事ができます。
- 自分のシステムがハッキングされてしまったかも
- トロイの木馬が仕掛けられてないか不安
といった場合には、上記 DB と照合してみてください。 照合結果は以下のように出力されます。
2a88e945cc84a70f79b221ba110a2bca - - 1 match(es)
* canonical-path: /usr/bin/su
* package: SUNWcsu
* version: 11.10.0,REV=2005.01.21.15.53
* architecture: sparc
* source: Solaris 10/SPARC
* patch: 119574-02
また、この結果から副産物として該当ファイルがどのパッケージの物かがわか り、現在のファイルの patch id および revision までが確認できます。
Posted at 06:04午後 4 26, 2006 by Naoyuki Yamada in Sun | 投稿されたコメント[0]
Sunロゴの豆知識
Sun の由来はよくきいたことがあるでしょう。 そう Stanford University Network の頭文字をとったものです。 この見慣れているSunロゴは実は一度だけ、デザイン変更されています。 1993年のことです。
- 旧Sunロゴ写真(ビルの看板)
- 新Sunロゴ写真(E6500 と Ultra 45)
サーバとビルの形が何となく似ているので、並べてみました。 古いカタログや名刺をお持ちであれば、確認することもできます。 1993年と言えば、SPARCstation 10(通称SS10)、SPARCstation 20(通称SS20)全盛期であり、 性能指標として知られる SPEC95 では SS10 model 40 を基準としていました。 さて、この Sunロゴ、どこかで似たようなロゴを見かけたことがないでしょうか? スポーツウェアのコロンビアを見かけたら比べてみるとおもしろいでしょう。http://www.columbia.com/
Posted at 01:35午後 4 26, 2006 by masahiko in Sun | 投稿されたコメント[0]
CD/DVD の作成方法(how to use "cdrw")
Solaris での CD/DVD の作成方法(how to use "cdrw")
現在では Sun のマシンでも CD/DVD を作成することが可能なマシンが結構ありますが、 あまりそのような機種を使用したことが無かったため、PC で他の OS か ら CD/DVD を焼いていました。ですが、最近購入した PC に DVD+RW のド ライブがついていたので、Solaris で CD/DVD を試しに焼いてみました。
自分が特に Solaris 上で CD/DVD を焼きたい衝動にかられるのが ISO イメー ジです。最近 Solaris Express/OpenSolaris 等でかなり多くの ISO イメー ジがあり、Solaris で作業している自分としては、CD/DVD を焼くためだけ にわざわざ他の OS を起動したくありません。
そこで、ISO イメージを CD/DVD に書き込む方法を cdrw(1) で調査して、 まとめてみました。さすが Solaris!! ISO イメージを書き込むことは想 定の範囲内らしく簡単さに驚きました。
また、上で書いたように OpenSolaris/Solaris Express で ftp サイトに ISO イメージがそのままおいてあり、CD/DVD に焼くほどではないが、ちょっ とだけ中身を確認したい場合が結構あります。その場合の確認方法も まとめてみました。
| システム | Sony VAIO VGN-S92PSY |
| OS | Solaris 10 1/06(x86) |
CD/DVD に ISO イメージを焼く
CD, DVD に書き込む場合は cdrw(1) コマンドを使用します。
CD, DVD ライタの有無確認方法(-l オプション)
書き込み可能なドライブがある場合
# cdrw -l CD デバイスを捜しています... ノード 接続されているデバイス デバイス形式 ----------------------+--------------------------------+----------------- cdrom0 | MATSHITA DVD-RAM UJ-822Sa 1.01 | CD リーダー/ライター書き込み可能なドライブがない又はメディアが挿入されていない場合
# cdrw -l CD デバイスを捜しています... CD ライターがないか、またはドライブにメディアが入っていません。
メディアがブランクか確認(-M オプション)
ブランクの場合
# cdrw -M デバイス名 : MATSHITA DVD-RAM UJ-822Sa ファームウェア : Rev. 1.01 (50419mKME175) メディアはブランクです
書き込み済みの場合
# cdrw -M デバイス名 : MATSHITA DVD-RAM UJ-822Sa ファームウェア : Rev. 1.01 (50419mKME175) トラック |形式 |開始アドレス ----------+--------+------------- 1 |データ |0 Leadout |データ |178562 最後のセッションの開始アドレス: 0
疑似書き込みモード(-S オプション)
通常 -p と一緒に使い x 倍速で書き込めるか確認するメディアにはデータは書き込まれません。システムが CD ライターに 指定された書き込み速度で、十分にデータを提供できるかどうか調べ る場合に使用します。
注意
cdrw はドライブの最高速度で書き込みを試みます。-p オプションを 指定しないとメディアとドライブの速度の違いにより、書き込みが失 敗する場合があります。その場合に備えて -S オプションで疑似書き 込みを行うと良いと思います。-p オプションなしの場合 (これは失敗)
# cdrw -iS /work/kit/sol-nv-b36-x86-v1.iso CD デバイスを捜しています... デバイスを初期化中(疑似書き込みモード)...終了。 書き込み中トラック 1...失敗しました。 終了。 終了処理中 (数分間かかることがあります)...終了。
-p 8 つまり 8 倍速の場合 (これは成功)
# cdrw -iS -p 8 /work/kit/sol-nv-b36-x86-v1.iso CD デバイスを捜しています... デバイスを初期化中(疑似書き込みモード)...終了。 書き込み中トラック 1...終了。 終了処理中 (数分間かかることがあります)...終了。
-p 40 つまり 40 倍速の場合(これは失敗)
# cdrw -iS -p 40 /work/kit/sol-nv-b36-x86-v1.iso CD デバイスを捜しています... デバイスを初期化中(疑似書き込みモード)...終了。 書き込み中トラック 1...失敗しました。 終了。 終了処理中 (数分間かかることがあります)...終了。
簡単な ISO イメージの焼き方
# cdrw -i -p 8 /work/kit/sol-nv-b36-x86-v1.iso CD デバイスを捜しています... デバイスを初期化中...終了。 書き込み中トラック 1...終了。 終了処理中 (数分間かかることがあります)...終了。
つまりほんの少しのオプションさえ頭の片隅においておけば ISO イ メージなど焼きたい放題です!!
もっといろいろな種類のファイルを CD/DVD に焼きたい場合は以下 の URL が有用です。
-
Solaris 10 System Administrator Collection - Japanese
>> Solaris のシステム管理 (デバイスとファイルシステム)
>> 4. CD および DVD への書き込み (手順)
-
Solaris 10 Reference Manual Collection - Japanese
>> SunOS リファレンスマニュアル 1 : ユーザーコマンド
>> ユーザーコマンド
>> cdrw(1) - CD の読み取りと書き込み
ISO イメージ内容確認方法
lofiadm(1M) を使用することにより、ISO イメージを必要に応じてマウント することもできます。
# lofiadm -a /work/kit/sol-nv-b36-x86-v1.iso /dev/lofi/1 # mount -F hsfs -o ro /dev/lofi/1 /mnt # lofiadm Block Device File /dev/lofi/1 /work/kit/sol-nv-b36-x86-v1.iso
これで以下のように ISO イメージの内容を確認することが可能です。
# cd /mnt # ls Copyright Solaris_11/ JDS-THIRDPARTYLICENSEREADME boot/ # cd Solaris_11/ # ls Docs/ Misc/ Patches/ Product/ Tools/
イメージ確認後は以下のコマンドを使用して、マウントを解除することが 可能です。
# cd / # umount /mnt # lofiadm -d /work/kit/sol-nv-b36-x86-v1.iso # lofiadm Block Device File
これで ISO イメージからファイルを確認することが可能になります。
Posted at 05:58午後 4 25, 2006 by Chizu Kitano in Sun | 投稿されたコメント[1]
N1 System Manager
Sun N1 System Manager - FLASHデモ
Sun N1 System Managerというソフトウェアをご存知でしょうか。百台を超える サーバーのインストール / パッチ適用 / ハードやOSの状態監視 / イベント検知 といった手間のかかる管理業務を1台の端末から集中的に行うことを可能にする ソフトウェアです。最近ではビジネスアプリケーションでも Grid Computing 的に スケールアウトさせる事例が増えていますが、このようなシステムを従来の手法で 管理しようとすると、膨大な時間と繰り返し作業によって管理コストが跳ね上がって しまいます。N1 System Managerは、管理ネットワークに接続された多数の小型 サーバーを、見た目にも分かりやすい Hybrid UI (GUIとCLIが連動する Web Browser Interface) によって集中管理し、この問題を解決します。
Flash を使った楽しいデモがありますので、是非アクセスしてみてください。
Sun N1 System Manager FLASHデモ
以下に Transcript と日本語訳を付けましたのでどうぞ。
Many IT managers today face constrains on time, people, and budgets. Managing hundreds of servers across diverse operating environments increases costs, and creates a nightmare of complexity. Sun puts the solution to this problem at your fingertips.
今日、多くの IT マネージャは時間、人員、予算の不足に直面しています。 数百ものサーバーと数多くのOS環境は管理コストを引き上げ、その複雑さは まさに悪夢のようです。Sun はこの問題に対し、今すぐ利用可能な ソリューションを用意しました。
Sun N1 System Manager provides a comprehensive solution for infrastructure lifecycle management. With support for Sun Fire x64 and Sun SPARC servers, Sun N1 System Manager allows you to deploy and manage hundreds of servers as easily and quickly as deploying and managing a single server, whether you are running Solaris, Linux, or Windows operating systems.
Sun N1 System Manager は情報システム基盤のライフサイクル全体にわたり 包括的な管理ソリューションを提供します。Sun N1 System Manager は Sun Fire x64 シリーズと Sun SPARC サーバーをサポートし、たとえOSが Solaris であれ、Linux、Windows であれ、あたかも一台のサーバーを管理 するかの如く容易かつ迅速に何百台ものサーバーを管理します。
By automating system discovery, software provisioning, server monitoring and management, Sun N1 System Manager simplifies your IT operations, and reduces repetitive administration tasks, thereby decreasing operate errors. The result is faster system deployment, improved reliability, Higher productivity, and lower operating costs.
システムの検出からソフトウェアのプロビジョニング、さらにサーバーの 状態監視と管理を自動化することによって、Sun N1 System Manager は 情報システムの業務を容易にし、作業の繰り返しを削減します。これにより 作業のミスも減少します。結果として、迅速なシステムセットアップ、 信頼性の向上、より高い生産性を、従来より低いコストで実現できるのです。
Let's take a look at N1 System Manager in action. Sun N1 System Manager automatically discovers compute nodes on the network, based on subnet or IP addresses of the servers. The software captures relevant hardware and software information, which will be used later to manage the servers.
N1 System Manager の動作を見てみましょう。Sun N1 System Manager は ネットワーク上の計算ノードを、そのサブネットや IP アドレスに基づいて 自動的に検出していきます。そしてそのハードウェア情報とソフトウェア 情報を取得し、後の管理のために保存しておきます。
You can logically group these servers together, according to your business policies. Once these groups are created, N1 System Manager efficiently provisions the desired operating systems onto the selected servers simultaneously with minimum manual intervention.
これらのサーバーはビジネスポリシーに従ってグループ化できます。 そして N1 System Manager は任意のオペレーティングシステムを 効率よくそのグループのサーバーに並行にセットアップしていきます。
To further simplifies system deployment and improve IT productivity, you can then use Sun N1 Service Provisioning System, to provision applications on these servers. In addition, you can increase the overall utilization of these systems by using Sun N1 Grid Engine, to pool the networked resources into a compute grid.
さらに、アプリケーションのセットアップに N1 Service Provisioning System を使うと、より容易なシステム配備と生産性の向上を実現できます。 また、N1 Grid Engine を使ってネットワーク上の機器を1つのグリッド システムとしてまとめることにより、システム全体の利用率を向上させる ことが可能です。
Sun N1 System Manager also provides critical monitoring functions for key hardware and software components to ensure the health of servers. It provides event logging, and notifies you immediately when an alarm condition is detected, so you can take corrective actions to resolve the problems quickly.
Sun N1 System Manager はまた、主要なハードとソフトの状態監視を 常時行っており、異常を検出すると直ちにイベントログを記録するとともに 管理者へ通知します。これにより速やかな問題の解決が可能となるのです。
Sun N1 System Manager performs all management functions from a single centralized console with a friendly hybrid graphical and command line user interface.
Sun N1 System Manager は GUI と CLI を合わせ持つ、扱いやすい 「ハイブリッド UI」により、単一の管理画面から全ての管理作業を行うこと ができます。
This innovative approach gives you maximum usability and flexibility. You can manage remote servers in a lights-out environment as easily as managing servers within a local datacenter. And you can assign permissions to authorized users to perform specific management tasks.
この革新的な手法によって最高の使いやすさと柔軟性が実現されるのです。 管理者は遠隔地にあるパワーオフ状態のサーバーをあたかも現地で行うように 操作することが可能です。また、個別の管理タスクの権限を特定のユーザに 限定することもできます。
Whether you are provisioning new servers for the first time, or re-provisioning existing servers for new usage, Sun N1 System Manager is simply the best solution for managing Sun Fire x64 and Sun SPARC server environments.
つまり、初回セットアップでも既存サーバーの再利用でも、Sun N1 System Manager は Sun Fire x64 シリーズと Sun SPARCサーバーににとってベストな 管理ソリューションなのです。
Discover for yourself how easy it is to speed system deployment, improve reliability, increase productivity, and lower operating costs using N1 System Manager. Download the software free of charge today, and start experiencing the power of Sun N1 System Manager and its complementary N1 software for your own environment.
さあ、実感してください。N1 System Manager によっていかに素早くシステムを 配備でき、信頼性と生産性が向上し、管理コストが削減できるかを。 N1 System Manager と他の N1 ソフトウェアの評価版をダウンロードして ご自身の環境でお試しください。
- Sun N1 System Manager 製品ページ
- Sun N1 System Manager 1.2 マニュアルコレクション
- Sun N1 System Manager 1.3 マニュアルコレクション(英語)
Posted at 08:00午後 4 19, 2006 by masahiko in Sun | 投稿されたコメント[0]
SVMでILM
SVMで手軽に始めるILM
現在コンピュータストレージの世界では、急増するデータをいかに 効率的に保存・管理するかが大きな課題となっており、情報の生成から 破棄まで、時間と共に変化する価値と特性に応じてデータを動的かつ 最適に配置するという、情報ライフサイクルマネジメント (ILM : Information Lifecycle Management) の考え方が注目を集めています。 ILM を実現する技術としては、ニアライン・ストレージ (ディスクと テープの中間的な位置付けのストレージ) としての大容量 SATAディスクや、 アクセス頻度に応じて自動的にデータをテープライブラリへ移動させる アーカイビング・ソフトウェアなどがあります。一般的にデータ管理の 課題を抱えるシステムが大型システムであるため、ILM の実現には高機能な ディスクアレイや高額なソフトウェアが必要であると受け取られがちですが、 実は非常に手軽に使えて、かつPCクラスの小型システムでも有効性を実感 できる技術なのです。以下に Solaris のボリューム管理機能である Solaris Volume Manager (SVM) を使った ILM をご紹介します。是非お手元のマシンで ILM の良さを実感してください。
Solaris Volume Manager を使った ILM ソリューション
一口に ILM と言っても、ファイル単位で細かくアーカイビングする ものや、ボリューム(ファイルシステム)単位でディスク間を移動させる ものなど、いろいろなソリューションがあります。ここでご紹介するは、 ボリューム単位でディスク間を移動させるもので、一旦 SVM の管理下に 入ったボリュームは、システムを停止させずに極めて簡単に物理ディスク間を 移動できるようになります。例えば次のような状況においてこの仕組みが効果を 発揮します。
- 新型ディスク装置を導入したのでボリュームを移行したいが、システム停止は許されない。
- 旧版アプリケーションへのアクセスが減ったため、ボリュームごと SATA ストレージへ移動したい。
- 本番データのクローンを使ってテストを行いたい。
- ニアラインストレージを使って Disk-to-Disk オンラインバックアップを実現したい。
- 古いディスクを有効活用したい。
以下の例では、SVM を使って2台のディスク間でボリューム移動を行います。 OS は Solaris 10 1/06 を使用しています。
jws50# cat /etc/release
Solaris 10 1/06 s10s_u1wos_19a SPARC
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 07 December 2005
jws50# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1c,600000/scsi@2/sd@0,0
1. c0t1d0
/pci@1c,600000/scsi@2/sd@1,0
Specify disk (enter its number): ^D
1つ目のディスクスライス (Disk#0) は c0t0d0s5 (5.0 GB)を使用します。 UFS ファイルシステムとして /data にマウントされています。
Part Tag Flag Cylinders Size Blocks 5 unassigned wm 20328 - 23957 5.00GB (3630/0/0) 10487070 jws50# df -k|grep data /dev/dsk/c0t0d0s5 5163909 266337 4845933 6% /data
2つ目のディスクスライス (Disk#1) は少し容量の大きい c0t1d0s3 (6.0 Gb)を使用します。 現状未使用で、この後 Disk#0 のデータがここへ移行されます。
Part Tag Flag Cylinders Size Blocks 3 unassigned wm 16840 - 21195 6.00GB (4356/0/0) 12584484
ボリュームの SVM への取り込み
Disk#0 をマウントしたまま SVM の管理下に置きます。
jws50# metainit -f d91 1 1 c0t0d0s5
d91: 連結/ストライプがセットアップされます
jws50# metastat
d91: Concat/Stripe
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase Reloc
c0t0d0s5 0 No Yes
Device Relocation Information:
Device Reloc Device ID
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
さらにこれをサブミラーとするミラーボリュームを作成します。
jws50# metainit d81 -m d91
d81: ミラーがセットアップされます
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
/data がこのミラーボリューム d81 を参照するよう /etc/vfstab を編集し、 /data をマウントし直します。
jws50# df -k|grep data /dev/dsk/c0t0d0s5 5163909 266337 4845933 6% /data jws50# umount /data jws50# mount /data jws50# df -k|grep data /dev/md/dsk/d81 5163909 266337 4845933 6% /data
残念ながらここで umount を行うため、このボリュームに依存するアプリケー ションは一度停止する必要があります。しかし一度ミラーボリュームを作って しまえば今後この操作は不要です。
次に2つ目のディスクスライス (Disk#1) を SVM に取り込みます。
jws50# metainit d92 1 1 c0t1d0s3
d92: 連結/ストライプがセットアップされます
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
d92: Concat/Stripe
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase Reloc
c0t1d0s3 0 No Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
データの再同期とボリュームの切り替え
Disk#1 (d92) を先ほどのミラーボリュームに追加します。自動的に同期処理が 開始されます。
jws50# metattach d81 d92
d81: サブミラー d92 is attached
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
サブミラー 1: d92
状態: 再同期中
再同期実行中: 0 % 完了
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
d92: d81 のサブミラー
状態: 再同期中
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
同期処理完了後、元のディスクをミラーボリュームから切り離します。
jws50# metadetach d81 d91
d81: サブミラー d91 は切断中
jws50# metaclear d91
d91: 連結/ストライプがクリアされます
jws50# metastat
d81: ミラー
サブミラー 1: d92
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d92: d81 のサブミラー
状態: 正常
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
これでボリュームの移行が完了しました。
ところで、Disk#1 の容量が少し大きかった (6.0 GB) ことを思い出してください。 データ移行と同時にファイルシステムの容量も拡張しておきましょう。
ボリュームとファイルシステムの拡張
metattach
jws50# metattach d81
jws50# metastat
d81: ミラー
サブミラー 1: d92
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 12584484 ブロック (6.0 GB)
d92: d81 のサブミラー
状態: 正常
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
jws50#
ミラーボリュームの容量が 6.0 GB に増えました。今度は growfs コマンドを使って ファイルシステムを拡張します。
jws50# df -k|grep data /dev/md/dsk/d81 5163909 193121 4919149 4% /data jws50# jws50# growfs -M /data /dev/md/rdsk/d81 警告: 最終シリンダで 4572 セクタが割り当てられません。 /dev/md/rdsk/d81: 全セクター数: 12584484 (シリンダ数: 2049、トラック数: 48、セクター数: 128) 6144.8MB、129 シリンダグループ (16 c/g, 48.00MB/g, 5824 i/g) スーパーブロックのバックアップの位置 (fsck -F ufs -o b=# のため) : 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920, 11705248, 11803680, 11902112, 12000544, 12098976, 12197408, 12295840, 12394272, 12492704, 12582944 jws50#
df コマンドを使ってファイルシステムが拡張されたことを確認します。
jws50# df -k|grep data /dev/md/dsk/d81 6196247 251609 5892999 5% /data
SVM を使って手軽に ILM を実現する例をご紹介しましたが、大規模なシステムでは やはり管理が複雑になってしまうかも知れません。このような場合は SAN によってストレージを統合し、ストレージ側の ILM 機能で一元管理した方が良いでしょう。 データ移行に加え、差分データコピーや外部ストレージ接続といった強力な機能を持つ Sun StorEdge 6920 や Sun StorEdge 9985 などがお薦めです。システム規模とご予算に 応じてお選びください。
Posted at 08:00午後 4 18, 2006 by masahiko in Sun | 投稿されたコメント[0]
二人ルール
二人ルール・・・もうひとつのセキュリティ
コンピューターセキュリティに係わる事件は収まるどころかまだまだ出そうな勢いですが、事件の原因を見てみると、外部からの攻撃と同様に、内部からの攻撃、人的ミス、組織の問題に起因するケースが多々あるように思われます。もちろんコンピュータはこれらの問題に対して無力ではありませんし、Sun Microsystems からもアイデンティティ管理やシンクライアント、Solaris 組み込みのセキュリティ機能など、様々なソリューションが提供されており、これらの機能を正しく使えば、相当強固なセキュリティを確保できます。しかし極めて重要な作業を行う場合、個人への役割付与では、たとえ権限を細かく分割しても不十分な場合もあります。
たとえば「二人ルール」。核ミサイルの発射スイッチを2人同時に操作するアレですが、これは個人の暴走やミスを防止するのに極めて有効です。コンピュータ管理にもこのような仕組みがあると良いと思いませんか? 実は Solaris の RBAC をうまく使うとこの「二人ルール」を実現できるのです。以下の例を見てください。一連の設定の後、このシステムでは端末の前に二人揃わないとスーパーユーザ権限を行使できなくなります。
RBACを使った「二人ルール」の実装 (基本編)
まず担当者2人を決定します。仮に Aさん、Bさんと呼びます。
root 役割を引き受けることができるローカルユーザ(admuser)を用意します。パスワードは Aさんが管理します。
# useradd -c "Local administrative user" -d /export/home1 admuser
# passwd -r files admuser
root としてログインしていないことを確認します。
# who
jdoe console May 24 13:51 (:0)
jdoe pts/5 May 24 13:51 (:0.0)
jdoe pts/4 May 24 13:51 (:0.0)
jdoe pts/10 May 24 13:51 (:0.0)
root ユーザを役割に変更します。root パスワードは Bさんが管理します。
# usermod -K type=role root
root が役割であることを確認します。user_attr ファイルの root エントリは、次のようになります。
root::::type=role;auths=solaris.*,solaris.grant;profiles=Web Console
Management,All;lock_after_retries=no
root 役割を先に用意したローカルユーザ(admuser)に割り当てます。
# usermod -R root admuser
新しい端末ウィンドウを開き、root 役割を引き受けます。
% su admuser
Enter password: ( Aさんが admuser パスワードを入力する)
% roles
root
% su root
Enter password: ( Bさんが root パスワードを入力する)
#
これで Aさん、Bさんの二人が揃わないと root権限を行使できなくなりました。しかし、いざという時、どちらかが休みや出張では困るので代理を立てたいところです。上の例を少しひねって、管理者グループの誰か二人が揃えば root権限を行使できるようにしてみましょう。
RBACを使った「二人ルール」の実装 (応用編)
管理者グループのメンバを userA, userB, userC の三人とします。各メンバにはスーパーユーザ権限を持った役割 roleA, roleB, roleC を与えますが、各自自分の持つ役割にだけは su できないようにしておきます。こうすることで、スーパーユーザ権限を使うためにグループの他のメンバが必要となるわけです。
まず、それぞれのメンバに割り当てる役割 roleA, roleB, roleC を作成します。
jws50# roleadd -d /export/home/roleA -m roleA jws50# roleadd -d /export/home/roleB -m roleB jws50# roleadd -d /export/home/roleC -m roleC jws50# getent passwd roleA roleB roleC roleA:x:202732:1::/export/home/roleA:/bin/pfsh roleB:x:202733:1::/export/home/roleB:/bin/pfsh roleC:x:202804:1::/export/home/roleC:/bin/pfsh
作成した役割に、スーパーユーザ権限を持つ Primary Administrator 権利プロファイルを割り当てます。
jws50# rolemod -P "Primary Administrator" roleA
jws50# rolemod -P "Primary Administrator" roleB
jws50# rolemod -P "Primary Administrator" roleC
jws50# profiles -l roleA roleB roleC
Primary Administrator:
* uid=0, gid=0
All:
*
Primary Administrator:
* uid=0, gid=0
All:
*
Primary Administrator:
* uid=0, gid=0
All:
*
各役割を管理グループメンバに割り当てます。各自自身の管理する役割には su できないことに注目してください。
jws50# usermod -R roleB,roleC userA jws50# usermod -R roleC,roleA userB jws50# usermod -R roleA,roleB userC jws50# roles userA userB userC userA : roleB,roleC userB : roleC,roleA userC : roleA,roleB
役割のパスワードを設定します。roleA のパスワードは userA、roleB のパスワードは userB、roleC のパスワードは userC が管理します。
jws50# passwd roleA 新しいパスワード: 新しいパスワードを再入力してください: ( userA が管理) passwd: roleA のパスワードが変更されました jws50# passwd roleB 新しいパスワード 新しいパスワードを再入力してください: ( userB が管理) passwd: roleB のパスワードが変更されました jws50# passwd roleC 新しいパスワード 新しいパスワードを再入力してください: ( userC が管理) passwd: roleC のパスワードが変更されました
これで管理グループメンバ (userA, userB, userC) のうち二人が揃えばスーパーユーザ権限を行使できるようになりました。実際のシステムでは audit 設定や端末入出力ログ採取など運用のルールを決めておく方が良いでしょう。
- Solaris のシステム管理 (セキュリティサービス) - パートIII 役割、権利プロファイル、特権
- Enforcing the Two-Person Rule Via Role-Based Access Control in the Solaris 10 Operating System
Posted at 08:10午後 4 17, 2006 by masahiko in Sun | 投稿されたコメント[0]
Building OpenSolaris
OpenSolaris をビルドしてみよう
Solaris はオープンソースになりました、と言われてもまだ実感の湧かない方も居られるのではないでしょうか。「それがどうしたの?」とおっしゃる貴方、「関係ないよ」と思っている皆さん。これからは「参加の時代」です。とっても簡単ですから、まずはビルドに挑戦してみてはいかがでしょうか。
用意するもの
インターネット接続環境
CD-R 書き込み環境
CD-R 未使用メディア4枚
# Solaris Express インストールメディアとして使用
Solaris Express の動作する SPARC または x86/x64 システム
# ターゲットシステム、ビルド環境兼用
# 4GB 程度の空きディスク領域を用意
OpenSolaris Websiteへのアクセス
用意ができたら Web browser を使ってまずは http://www.opensolaris.org へアクセスしてください。OpenSolaris の総本山となるサイトです。ここから、ページ右上の CDROM (Download アイコン) をクリックし、さらにリンク先ページ中ほどの "Operating System / Networking (ON)" をクリックすると、作業手順をまとめたページに辿り着きます (http://www.opensolaris.org/os/downloads/on/)。"How do I start?" 以下、Step 3a の方へ進みます。
Solaris Express のインストール
ビルド環境 兼 ターゲットシステムのベースとなる Solaris Express: Community Release をダウンロードし CD-R を作成してください。これを使ってターゲットシステムのインストールを行います。
# cat /etc/release
Solaris Nevada snv_34 SPARC
Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 22 February 2006
インストールが完了したら、ビルド作業用ディレクトリを作成します。場所は任意ですが今回は以下のように作成します。
/opensolaris/ - OpenSolaris 用 Top
+ ws-test/ - ビルドワークスペース
+ download/ - ファイルダウンロード用
ファイルの入手
ビルドツールとソースコードをダウンロードします。コンパイラには Sun Studio 10 を使います。先ほどの作業手順 (http://www.opensolaris.org/os/downloads/on/) の Step 3a 以下 "Sun Studio 10" をクリックし (http://www.opensolaris.org/os/community/tools/sun_studio_tools/) OpenSolaris用 Sun Studio 10 のページへ行きます。2つの Option がありますが、今回は Option 1 を選択します。"Download install image"からダウンロードできる install image には OpenSolaris のビルドに必要なパッケージ、パッチ、ライセンスが全て揃っているため非常に便利です。
# pwd /opensolaris/download # ls sunstudio10-ii-20050912-sol-sparc.tar.bz2 ... [1]
さらに、先の作業手順に従って OpenSolaris Download Center ( http://dlc.sun.com/osol/on/downloads/current/ ) から、以下必要なファイルを入手します。
* ビルドツール
o SUNWonbld-DATE.PLATFORM.tar.bz2 ...[2]
* SPARCの場合は以下の追加ビルドツールも必要
o opensolaris-build-extras-DATE.sparc.tar.bz2 ...[3]
* ソースファイル
o on-src-DATE.tar.bz2 ......[4]
* クローズドバイナリ ( ソース非公開部分 )
o on-closed-bins-DATE.PLATFORM.tar.bz2 ...[5]
ビルドツールのインストール
Solaris Express をインストールしたシステムに、ビルド環境を構築します。 まず、Sun Studio 10 アーカイブ [1] を /opt ディレクトリ配下に展開します。
# cd /opt # bzcat /opensolaris/download/sunstudio10-ii-20050912-sol-sparc.tar.bz2 | /bin/tar -xf - (SPARC の場合のみさらに) Sun Studio 10 追加バイナリ [3] をインストール # cd /opt # bzcat /opensolaris/download/opensolaris-build-extras-20050614.sparc.tar.bz2 | /bin/tar -xf -
次に PATH と MANPATH シェル変数を設定します (何度も設定するのが面倒な場合は .cshrc や .profile を更新してください)。
csh の場合: % setenv PATH /opt/SUNWspro/bin:$PATH % setenv MANPATH /opt/SUNWspro/man:$MANPATH sh (または ksh) の場合: % PATH=/opt/SUNWspro/bin:$PATH ; export PATH % MANPATH=/opt/SUNWspro/man:$MANPATH ; export MANPATH
その他のビルドツール [2] もインストールします。
# cd /opensolaris/download # bzip2 -dc SUNWonbld-20060228.sparc.tar.bz2 | tar xf - # pkgadd -d . SUNWonbld
また .login や .profile を編集し、PATH シェル変数に /opt/onbld/bin を追加しておいてください。
ソースの展開
続きは Developer's Reference ページ (http://www.opensolaris.org/os/community/onnv/devref_toc/) にある "1.3.3 Building from Source" の手順を参照しながら進めます。 ワークスペース /opensolaris/ws-test へ移動し、先にダウンロードしたソース [4] とバイナリ [5] を展開します。
# cd /opensolaris/ws-test # bzip2 -dc ../download/on-src-20060228.tar.bz2 | tar xf - # bzip2 -dc ../download/on-closed-bins-20060228.sparc.tar.bz2 | tar xf -
その後、環境ファイルのテンプレートを /opensolaris 直下にコピーし・・・
# cd /opensolaris/ws-test # cp ./usr/src/tools/env/opensolaris.sh .
エディターを使ってコピーした opensolaris.sh に変更を加えます。
- GATE としてワークスペース名を設定 ( ws-test )
- CODEMGR_WS にワークスペースのフルパス名を設定 (/opensolaris/ws-test).
- STAFFER に自分のログイン名を設定
GATE=ws-test; export GATE ... CODEMGR_WS="/opensolaris/$GATE"; export CODEMGR_WS ... STAFFER=root; export STAFFER
ビルドの実行
ワークスペースディレクトリ /opensolaris/ws-test にて次のようにビルドを行います。
# cd /opensolaris/ws-test # nightly ./opensolaris.sh &
Sun Fire V240 (2 x UltraSPARC IIIi 1.28GHz) ではビルド完了までに 2時間20分49秒かかりました。ビルド中のログ出力は /opensolaris/ws-test/log/nightly.log に記録されますのでこちらを確認してください。コマンドラインには何も出力されません。
参考までに /opensolaris/ws-test/log/nightly.log は以下のような出力となります。
install -s -d -m 755 /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/man install -s -d -m 755 /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/man/man1 /export/home/NVBLD/ws-test/usr/src/tools/cw /opt/SUNWspro/bin/cc -xO3 -xarch=v8 -xspace -W0,-Lt -W2,-Rcond_elim -Xa -xildoff -errtags=yes -errwarn=%all -erroff=E_EMPTY_TRANSLATION_UNIT -erroff=E_STATEMENT_NO T_REACHED -xc99=%none -Wd,-xsafe=unboundsym -v -D_TS_ERRNO -DDEFAULT_CC_DIR='"/opt /SUNWspro/bin"' -DDEFAULT_GCC_DIR='"/usr/sfw/bin"' -DDEFAULT_CPLUSPLUS_DIR='"/opt/ SUNWspro/bin"' -DDEFAULT_GPLUSPLUS_DIR='"/usr/sfw/bin"' -M/opensolaris/ws-test/usr /src/cmd/mapfile_noexstk -o cw cw.c /usr/bin/rm -f /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/bin/sparc/cw; in stall -s -m 0555 -f /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/bin/sparc cw /export/home/NVBLD/ws-test/usr/src/tools/stabs /export/home/NVBLD/ws-test/usr/src/tools/stabs/sparc jws50 --> 1 job /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/bin/sparc/cw -_cc -xO3 -xarch=v8 -xspace -W0,-Lt -W2,-Rcond_elim -Xa -xildoff -errtags=yes -errwarn=%all -erroff= E_EMPTY_TRANSLATION_UNIT -erroff=E_STATEMENT_NOT_REACHED -xc99=%none -Wd,-xsafe=un boundsym -v -D_TS_ERRNO -c -I.. -o main.o -c ../main.c jws50 --> 2 jobs /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/bin/sparc/cw -_cc -xO3 -xarch= v8 -xspace -W0,-Lt -W2,-Rcond_elim -Xa -xildoff -errtags=yes -errwarn=%all -erro ff=E_EMPTY_TRANSLATION_UNIT -erroff=E_STATEMENT_NOT_REACHED -xc99=%none -Wd,-xsafe =unboundsym -v -D_TS_ERRNO -c -I.. -o stabs.o -c ../stabs.c jws50 --> 3 jobs /opensolaris/ws-test/usr/src/tools/proto/opt/onbld/bin/sparc/cw -_cc -xO3 -xarch= v8 -xspace -W0,-Lt -W2,-Rcond_elim -Xa -xildoff -errtags=yes -errwarn=%all -erro ff=E_EMPTY_TRANSLATION_UNIT -erroff=E_STATEMENT_NOT_REACHED -xc99=%none -Wd,-xsafe =unboundsym -v -D_TS_ERRNO -c -I.. -o forth.o -c ../forth.c jws50 --> 4 jobs
prstat コマンドで確認すると、dmake が沢山動いているのがわかります。よく活動している割に TIME が増えませんが、これは個々の dmake の処理が短く次々と入れ替わっているためです。
jws50# prstat PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 148594 root 3608K 2944K run 31 0 0:00:00 0.6% dmake/1 153444 root 3368K 2704K run 31 0 0:00:00 0.3% dmake/1 100900 root 15M 4008K sleep 59 0 0:18:02 0.2% vtsk/5 154230 root 3608K 2944K run 22 0 0:00:00 0.1% dmake/1 154254 root 3632K 2968K run 21 0 0:00:00 0.1% dmake/1 154260 root 3616K 2952K run 29 0 0:00:00 0.1% dmake/1 154236 root 3632K 2968K run 22 0 0:00:00 0.1% dmake/1 154259 root 3512K 2848K run 31 0 0:00:00 0.1% dmake/1 154223 root 3480K 2816K sleep 51 0 0:00:00 0.1% dmake/1 153763 root 5208K 3480K cpu1 59 0 0:00:00 0.1% prstat/1 154279 root 3440K 2776K cpu0 31 0 0:00:00 0.1% dmake/1 100565 root 7064K 4048K sleep 59 0 0:20:40 0.1% intrd/1 154160 root 3232K 2568K sleep 52 0 0:00:00 0.1% dmake/1 154264 root 3240K 2576K run 29 0 0:00:00 0.1% dmake/1 150984 root 3536K 2872K sleep 49 0 0:00:00 0.1% dmake/1 152845 root 3504K 2840K sleep 59 0 0:00:00 0.1% dmake/1 100120 root 5032K 3184K sleep 59 0 0:00:40 0.1% nscd/26 127167 root 1192K 904K sleep 59 0 0:00:00 0.1% tee/1 152940 root 3296K 2632K sleep 59 0 0:00:00 0.0% dmake/1 153077 root 3064K 2400K sleep 59 0 0:00:00 0.0% dmake/1 152865 root 1488K 1168K sleep 54 0 0:00:00 0.0% sh/1 154281 root 1480K 1160K run 29 0 0:00:00 0.0% sh/1 154256 root 1480K 1160K sleep 41 0 0:00:00 0.0% sh/1 154269 root 1480K 1160K run 31 0 0:00:00 0.0% sh/1 Total: 110 processes, 221 lwps, load averages: 12.38, 7.10, 3.14
vmstat をみると cpu がフル稼働しているのを確認できます。
jws50# vmstat 2 kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr s0 s3 -- -- in sy cs us sy id 0 0 0 2342904 1494752 2 903 1 0 0 0 0 11 7 0 0 371 1206 264 9 2 89 7 0 0 2291464 1399368 748 8882 24 0 0 0 0 80 0 0 0 773 17816 874 55 45 0 13 0 0 2276688 1386568 748 8860 36 0 0 0 0 89 0 0 0 775 17715 875 54 46 0 10 0 0 2284328 1393072 757 8883 20 0 0 0 0 67 0 0 0 682 17990 847 55 45 0 11 0 0 2282200 1390856 741 8754 24 0 0 0 0 89 0 0 0 759 17693 872 55 45 0 7 0 0 2278328 1387688 710 8652 24 0 0 0 0 88 0 0 0 808 17394 912 55 45 0
disk の活動状況です。
jws50# iostat -zxn 2
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
11.0 0.3 2786.6 1.4 0.0 0.2 0.1 14.1 0 9 c0t1d0
7.2 0.0 1838.9 0.0 0.0 0.2 0.1 24.2 0 10 sd3
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
30.1 154.6 122.5 1443.4 0.0 0.7 0.0 3.7 1 38 c0t1d0
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
20.5 173.1 61.0 1383.1 0.0 0.6 0.0 3.2 1 30 c0t1d0
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
26.5 174.4 76.5 1403.2 0.0 0.9 0.0 4.4 1 34 c0t1d0
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
28.0 208.5 87.5 1926.2 0.0 0.7 0.0 3.1 1 39 c0t1d0
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
22.0 320.0 73.0 3118.9 0.0 1.9 0.0 5.6 1 58 c0t1d0
ビルドしたバイナリのインストール
ビルドが無事完了したら、ビルドに使ったシステムにインストールしてみます。Developer's Reference ページ (http://www.opensolaris.org/os/community/onnv/devref_toc/) の "5.3 Using BFU to Install ON" を参照しながら進めます。
まず以下のようにシェル変数を追加しておきます。
# setenv FASTFS /opt/onbld/bin/`uname -p`/fastfs # setenv BFULD /opt/onbld/bin/`uname -p`/bfuld # setenv GZIPBIN /usr/bin/gzip
後は bfu コマンドにバイナリのディレクトリを指定し実行するだけです。bfu コマンドのフルパスは /opt/onbld/bin/bfu となります (ビルドツールのインストールで PATH 変数を追加しているためフルパス指定は不要です)。
# bfu /opensolaris/ws-test/archives/`uname -p`/nightly
後はシステムをリブートしてください。再起動後は新しい OpenSolaris が動作しているはずです。
# sync # reboot .... .... # uname -a SunOS ginger 5.11 ws-test sun4u sparc SUNW,Sun-Fire-V240
uname コマンドで表示されるバージョンが ws-test になっていれば成功です。
いかがでしたでしょうか。実際に動作するソースコードは、緊急パッチの作成、APIのより深い理解に役立つだけでなく、開発者以外の方もログメッセージの意味の理解や、Dtrace を使った性能チューニング/トラブルシューティングなど大いに役立つことと思います。さらに今後、皆さんのなかから1人でも多く OpenSolaris 開発者が現れることを期待したいと思います。
Posted at 08:00午後 4 16, 2006 by masahiko in Sun | 投稿されたコメント[0]