
第1回 Rollerと始めるOpenSolaris
| この連載では、サーバOSとして十数年発展してきた「Solaris」をオープンソース化した「OpenSolaris」を紹介し、ブログサーバ「Roller」と組み合わせて運用していくうえで有用なさまざまな知識を紹介していきます。(編集部) |
サン・マイクロシステムズ株式会社
OpenSolaris エバンジェリスト
大曽根 明
2008/1/10
この連載では、ブログサーバの導入と運用というテーマを軸に、OpenSolarisの紹介に始まり、実際に運用していくうえで有用なさまざまな知識を紹介していきます。第1回は、OpenSolarisとブログサーバ「Apache Roller」について紹介しましょう。
OpenSolarisとは何か
まず、「そもそもOpenSolarisとは何か」というところから始めましょう。すでにご存じの方も多いと思いますが、OpenSolarisとは名前のとおり、Solarisをオープンソース化するプロジェクトの総称です。ソースコードを公開し、幅広くコミュニティの力を得ることで、ユーザーにとってより高度で便利な環境を提供することを目指しています。
![]() |
| 画面1 OpenSolaris.orgのポータル(http://www.opensolaris.org/os/) |
公開されてからすでに2年以上経過しましたが、OpenSolarisはその間、オープンソースのプロジェクトとして着実に成長してきました。具体的には、複数のバイナリディストリビューションが出現しているほか、後述するとおり、OpenSolarisの機能をSolarisやMac OS、BSDといった別のOSへ移植するといった形で成果が生まれています。
以下の連載では、OpenSolarisの歴史など、すでに語られていることは省き、最近の動向や運用していくうえでの注意事項など、実践的な内容を中心に述べていきたいと思います。
| 関連記事: | |
| ラベルベースのアクセス制御機能を備えた新Solaris 10 http://www.atmarkit.co.jp/news/200701/31/solaris.html |
|
| ノートPCでこそ使いたいZFS http://www.atmarkit.co.jp/news/200706/29/zfs.html |
|
OpenSolarisに至るまでの道のり
でもやっぱり、初めに少しだけ歴史に触れておきましょう。
OpenSolarisの原点はSolarisです。そしてSolarisの源流は、BSDを基に、サン・マイクロシステムズが1980年代にリリースした「SunOS」に始まります。これに徐々に機能が追加され、1992年にはGUI環境などを追加した「Solaris 2.0」としてリリースされました。以来十数年、SolarisはサーバOSとして着実に発展してきました。これはちょうど、当初ワークステーション上でのビジネスを志向していたサン・マイクロシステムズの戦略が、次第にサーバ向けに軸足を移してきた道のりと軌を一にしています。
さて、この十数年の間に、サーバのリソースは飛躍的に拡大しました。
例えば当初のSMP(注1)サポート数は4CPUまで(SPARCserver 690)でした。当時はこれがハイエンドのシステムだったのですが、その後、20個(1991年のSPARCcenter 2000、SuperSPARC)、64個(Sun Enterprise 10000、UltraSPARC I)を経て、現在では144CPU core(Sun Fire 25K、UltraSPARC IV+)にまで拡張しています。
| 注1:SMP(Symmetric MultiProcessor)については下記を参照。 http://www.atmarkit.co.jp/icd/root/10/5785810.html |
同じように、ネットワーク帯域は10Mbpsイーサネットから最新の10Gbpsイーサネットへ、またメモリも64Mbytes(SPARCstation 2)程度から現在の2Tbytes(Sun SPARC Enterprise M9000)へと拡張しています。しかし、ハードウェアリソースの拡張に伴うシステム全体のスケーラビリティの拡大は、大変な苦労を伴う道のりでした。
![]() |
| 図1 各種リソースの飛躍的な拡大 |
例えば、仮想記憶を採用しているOSでは、ページフォルト(注2)がさまざまな理由によって始終発生しますが、このとき、仮想記憶システムは複数のCPUにまたがって効率よく稼働していなければなりません。というのもSMPの場合、たとえ144 CPU coreであっても、すべてのメモリのマップをシステムで共有するからです。この処理を複数のCPUで効率よく処理できるようにしないと、時間のほとんどが、1つのCPUの仮想記憶の処理待ちに費やされることになってしまいます。
| 注2:ページフォルトについては下記を参照。 http://www.atmarkit.co.jp/icd/root/59/5787359.html |
また同様に、仮想記憶では実メモリが足りなくなってくると、最も利用されていないと思われるページを再利用します。そのページを探すアルゴリズムにも工夫が必要です。Solaris 2.0のアルゴリズムのまま、2Tbytesのメモリを搭載したマシンで稼働させたとすると、システムは、空きページを決めるために1日中時間を使ってしまうかもしれません。
これほど大規模なシステムを安定稼働させるためには、信頼性の確保も必要です。
例えば、2Tbytesのメモリを搭載した大規模システムを「年」単位で連続稼働させることを考えてみましょう。この場合、メモリチップの数だけでも膨大になるため、ハードウェア故障の確率は、メモリ2Gbytesの場合よりも高くなってしまいます。そこで最新のSolarisには、エラー発生の兆候を見せたメモリを早期に検出し、自動的にシステムから切り離す機能が備わっています。
ほかに、ワークステーションにおけるGUI環境の整備など、ユーザビリティの面での改善も図られてきました。
このようにSolarisは、複雑なテーマをこなしながら、SMP環境で効率よく動作するように長年鍛えられ、発展してきました。いまではワークステーションだけでなく、教育・研究機関や企業基幹システムなど、さまざまな場所で導入されています。基本的なバイナリの互換性を保ちながら、さまざまな要件に応えるべく拡張、発展を行ってきたことが、Solarisの商業OSとしての価値と地位を確保してきた鍵であるといってよいでしょう。
ごく最近では、CPUのクロック周波数の向上が鈍化し、代わりに、1つのCPUチップに複数のコアを集約する方向が目指されています。IntelやAMDからも4コアのチップが出ていますし、サンも、8コアで64スレッドの同時実行が可能な「UltraSPARC T2」を出荷しています。
1つのチップに複数のコアが載ったものも、ソフトウェア的にはSMPに近いといえます。そのように考えると、誕生初期からSMPへの最適化が行われてきたSolaris、そしてその発展系であるOpenSolarisの時代がやって来たといってもいいでしょう。
1000万以上に上るコードを公開
OpenSolaris(http://jp.opensolaris.org)は、こうして発展してきたSolarisを基に、ソースコードを公開し、オープンソース化して開発を進めていくことを目的としたプロジェクトです。
ただし、OpenSolaris自体は、Linuxでいう「ディストリビューション」とは異なります。OpenSolarisはあくまでもプロジェクトの名称であり、「BeleniX」「NexentaOS」、あるいは「Solaris Express」などが各ディストリビューションに相当します。
最初のステップとして、2005年1月に「DTrace」関連がオープンソース化されました。DTraceは、システムの動きを動的に解析するためのツールで、アプリケーションやシステムのパフォーマンス解析に極めて有効です。このDTraceは、当時、Solaris 10が備える最新技術として注目を集めていました。
その後もカーネル本体やZFS、あるいはOpenGrokなど、多くのコードが順次公開されてきました。いずれも、Mozilla Public Licenseをベースにした「Common Development and Distribution License」(CDDL)に基づいてライセンスされており、その数は1000万行以上に上ります。
これはすべてのソースコードに関して、法的に問題のないことを逐一確認しながら進められてきた作業でした。というのも、Solarisはもともと、ソースコードを開示することを前提にしていません。結果として、その中にはさまざまな理由から他社のコードや知的財産が含まれることになりました。それらまでオープンソースとして公開するわけにはいきません。
日本の皆さんには、日本語入力システム「ATOK」の例が分かりやすいかもしれません。サンは、ジャストシステムからのライセンスを受けてATOKのバイナリをSolarisに含め、リリースしています。しかし、そのソースコードをサンが買い取って、オープンソースソフトウェアの1つとして開示する……となるとなかなか難しい話です。
そうはいっても、OpenSolarisでは、「SolarisがSolarisたり得る」ためのコードがほとんど開示されていますので、ご安心ください。
さらに、一部のコードは、ソースコードの公開にまでは至らなくても、バイナリとして提供されています。これを用いて、例えば、OpenSolarisのソースコードを使ったカーネルを作ることも可能です。また、後述するZFSのように、OpenSolarisプロジェクトでの開発の成果をSolaris 10に還元するといったことも行われています。
|
1/3 |
|
||||||
|
||||||
| Linux Square全記事インデックス |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |








