Upload
tatsumi-naganuma
View
2.767
Download
0
Embed Size (px)
DESCRIPTION
FreeBSDを小規模サーバーに使うために、抑えておくべきポイントを解説しました。NSEG第13回勉強会(2011年3月19日)の発表資料。
Citation preview
FreeBSD で行こうfor
small server
長沼 立巳
自己紹介
• 長沼立巳(ながぬまたつみ)• 上田市の機器メーカー勤務• 使っている OS
o デスクトップは Ubuntu 9.04 ( 2009 年 4 月リリース)くらいから
o サーバーは FreeBSD 3.4 ( 2000 年 12 月リリース)くらいから 長いだけのライトユーザー
FreeBSD のお話
• フリーでオープンなオペレーティングシステム• サーバーとか、組み込みとか
o デスクトップ用途は弱いかも• 今回は小規模サーバー向けのお話
FreeBSD のお話
• 個人用サーバー、 SOHO サーバー、部門サーバー• 大体のターゲット
o Pentium II 以降、 Core i3 とかo メモリ 256MB から 4GB くらいまでo ストレージ 2GB から 1TB くらいまでo Web サーバー、メールサーバー
• 我が家の常時稼動サーバー( 8 年くらい)o VIA Eden ESP-6000 667MHzo メモリ 512MBo ストレージ 32GB SSD
なぜ FreeBSD なのか
• 無料• シンプル• 簡単• 便利
FreeBSD をインストール ... の前に
• どのバージョンを使うか• 最新安定版は 8.2-RELEASE ( 2011 年 1 月)
o リリース版は 8.2-RELEASE という名前o パッチが出ると 8.2-RELEASE-p1 (まだ出てません)o 次のリリースは 8.3-RELEASE (まだ出てません)の予
定o 旧バージョン( 7.4-RELEASE )のメンテナンスも引き
続き行われている http://www.freebsd.org/security/security.html#sup
• 現在の開発版は 9.0-CURRENTo ここからリリースされるときに 9.0-RELEASE という名
前になる
FreeBSD をダウンロード
• まずは CD イメージ、または USB イメージをダウンロードo http://www.freebsd.org/ja
FreeBSD をダウンロード( 2 )
• 何種類かありますけど ...o FreeBSD-8.2-RELEASE-i386-bootonly.iso
ブートのみ。容量最小(現在 47MB )。おすすめ。 今回はこれで行きます
o FreeBSD-8.2-RELEASE-i386-disc1.iso CD 用。
o FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz DVD 用。 xz 形式。容量最大( 1.9GB )。
o FreeBSD-8.2-RELEASE-livefs.iso レスキュー用。
o FreeBSD-8.2-RELEASE-memstick.img USB メモリ用。
FreeBSD のインストール ... は時間が ...• standard / express / custom が選べるが
o できることはほぼ同じo standard ... ウィザード形式。起動するデーモンが選べるo express ... ウィザード形式o custom ... 手順の一覧から選べる
• ディスクの設定は面倒なら 'a' (自動設定)で OKo ただしディスク全体を使わないなら注意してo 一般「パーティション」 ⇔ FreeBSD 用語「スライス」
• わからないところは何もせずにすっとばすo システムファイルのインストール以外はあとでもできるo Distributions は Minimal で十分
FreeBSD のインストール ... は時間が ...
インストールしたらやること ( 1 )
• 以下、基本的に要 rooto まずは root でログイン
• 普段使い用のユーザーを作成o adduser
設定項目は他の UNIX と基本的に同じ Invite username into another groups? [] : wheel
これがないと su で root になれない /etc/group を直接編集しても OK
• インストーラー画面は sysinstall コマンドで呼び出せるo コマンドでもできるが、 sysinstall の方が便利o パッケージのインストールo ネットワーク インタフェースの設定o ストレージの追加
インストールしたらやること ( 2 )
• 以下、基本的に要 root• sshd を有効に使用
o /etc/rc.conf に「 sshd_enable="YES" 」という行を加える
o service sshd start• ports をダウンロード
o portsnap fetch extract (初回のみ)o portsnap fetch update (更新時)
• ports をインストールo portinstall <ports 名 >o どんな ports があるかは freshports.org がわかり易い
http://freshports.org/
インストールしたらやること ( 3 )
• 以下、基本的に要 root• ports を使う前に
o portupgrade をパッケージでインストール( ports からでもインストールできますが、時間がかかるので) sysinstall を起動して、 configure - packages か
ら、 ports-mgmt/portupgrade をインストールo ほかにもこんなのを入れておくと便利かも
shells/bash sysutils/tmux
• ports からインストールしたファイルは /usr/local に置かれるo / ... システムのファイルo /usr/local ... ユーザー毎のファイル( / と似た構造)
インストールしたらやること ( 4 )
• 以下、基本的に要 root• ports をダウンロード
o portsnap fetch extract (初回のみ)o portsnap fetch update (更新時)o /usr/ports に展開される
< カテゴリ名 >/<ports 名 > 例) www/apache22 = Apache HTTP Server 2.2
• ports からパッケージをインストールo portinstall < パッケージ名 >o 22,784 個( 2011/3/19 現在)o どんなパッケージがあるかは freshports.org で調べる
http://freshports.org/
インストールしたらやること ( 5 )
• 以下、基本的に要 root• ports を更新
o portsnap fetch update• 更新されたパッケージをリストアップ
o portversion -l "<"• パッケージの更新
o portupgrade < パッケージ名 >• パッケージの削除
o pkg_deinstall < パッケージ名 >
FreeBSD の基本 /etc/rc.conf
• ネットワークの設定、システムの設定• daemon の有効化、無効化
o ports からインストールしただけでは起動できないo Apache 2.2 なら、「 apache22_enable="YES" 」を追加o 渡すフラグなどもここで設定できるo service apache22 starto 起動スクリプトは次の場所
標準 /etc/rc.d ports など /usr/local/etc/rc.d
• それ以外の設定は /etc/defaults/rc.conf を見る
/etc/rc.conf の例
# system settingskeymap="us.iso"blanktime="120"saver="green"
# network settingsdefaultrouter="x.x.x.x"ifconfig_rl0="inet x.x.x.x netmask x.x.x.x"hostname="xxx"
# daemonsapache22_enable="YES"
標準機能
• 標準で含まれているデーモンo FreeBSD ftpo BINDo Sendmailo OpenSSH
• その他のよく使う標準機能o ログローテーションは newsyslogo inet デーモンは xinetdo パケットフィルタリングは ipfilter か pfo cron
periodic
• cron から定期的に呼び出されるシェルスクリプト群o security , daily (毎日) , weekly (毎週) , monthly (毎
月)• periodic からの標準出力は root宛にメールで送られる
o daily メールの内容(一部)変更されたシステムファイルの一覧 ディスクの使用量 ネットワークインターフェイスの状態 メールキュー
• 標準 + ユーザースクリプトo 標準 /etc/peridoco ユーザースクリプト /usr/local/etc/peridoco ユーザースクリプトの標準出力もメールに含んでくれる
バックアップとか、メンテナンスとか
FreeBSD jail
• OS 標準の軽量仮想環境o FreeBSD 上に FreeBSD環境をいくつも作ることができ
る• 何が嬉しい?
o 複数の構成のサーバーを同居させられる PHP4 + MySQL4 で動いているアプリがある PHP5 + MySQL5.5 で動かしたいアプリがある複数のバージョンの混在は面倒 FreeBSD jail なら簡単
o 開発環境をすぐに準備 あれこれ試したいが、システムに触るのはちょっと ... jail なら準備や破棄が簡単環境が分離されているので jail
FreeBSD jail デモ
• FreeBSD 8 + ezjail
shutdown -p now
• おしまい• ポポポポーン• ありがとうございました
アップグレード
• マイナーアップグレードo セキュリティパッチとか
例) 8.2-RELEASE → 8.2-RELEASE-p1o freebsd-update fetch install
• メジャーアップグレードo メジャーバージョンが上がった場合
例) 7.x-RELEASE/8.1-RELEASE → 8.2-RELEASEo やり方はバージョンごとに違う
りりーアナウンスに書いてあります 最近( 8.2-RELEASE )の例
freebsd-update upgrade -r 8.2-RELEASE freebsd-update install ; reboot ( 2 回繰り返し)
ちょっと上級者向けの話
• FreeBSD なら ZFS 使うでしょ?o 今回のターゲット程度の PC では厳しいですo メモリ最低 4GB 、できれば 8GB 以上ないと性
能がガタ落ちo HDD 最低 2台、 6台とか 8台とか 16台とか
そこに SSD を混ぜたい• もっといろんな機能があるよ
o DTrace ... OS やアプリケーションの動作を監視o VImage ... 仮想 PCごとのネットワークスタッ
クo SMPng ... CPU コア数に応じたリニアなスケー
ラビリティ( FreeBSD 8 で 16 コア程度まで)