24
FreeBSD でででで for small server でで でで

FreeBSDで行こう for small server

Embed Size (px)

DESCRIPTION

FreeBSDを小規模サーバーに使うために、抑えておくべきポイントを解説しました。NSEG第13回勉強会(2011年3月19日)の発表資料。

Citation preview

Page 1: FreeBSDで行こう for small server

FreeBSD で行こうfor

small server

長沼 立巳

Page 2: FreeBSDで行こう for small server

自己紹介

• 長沼立巳(ながぬまたつみ)• 上田市の機器メーカー勤務• 使っている OS

o デスクトップは Ubuntu 9.04 ( 2009 年 4 月リリース)くらいから

o サーバーは FreeBSD 3.4 ( 2000 年 12 月リリース)くらいから 長いだけのライトユーザー

Page 3: FreeBSDで行こう for small server

FreeBSD のお話

• フリーでオープンなオペレーティングシステム• サーバーとか、組み込みとか

o デスクトップ用途は弱いかも• 今回は小規模サーバー向けのお話

Page 4: FreeBSDで行こう for small server

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

Page 5: FreeBSDで行こう for small server

なぜ FreeBSD なのか

• 無料• シンプル• 簡単• 便利

Page 6: FreeBSDで行こう for small server

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 という名

前になる

Page 7: FreeBSDで行こう for small server

FreeBSD をダウンロード

• まずは CD イメージ、または USB イメージをダウンロードo http://www.freebsd.org/ja

Page 8: FreeBSDで行こう for small server

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 メモリ用。

Page 9: FreeBSDで行こう for small server

FreeBSD のインストール ... は時間が ...• standard / express / custom が選べるが

o できることはほぼ同じo standard ... ウィザード形式。起動するデーモンが選べるo express ... ウィザード形式o custom ... 手順の一覧から選べる

• ディスクの設定は面倒なら 'a' (自動設定)で OKo ただしディスク全体を使わないなら注意してo 一般「パーティション」 ⇔ FreeBSD 用語「スライス」

• わからないところは何もせずにすっとばすo システムファイルのインストール以外はあとでもできるo Distributions は Minimal で十分

Page 10: FreeBSDで行こう for small server

FreeBSD のインストール ... は時間が ...

Page 11: FreeBSDで行こう for small server

インストールしたらやること ( 1 )

• 以下、基本的に要 rooto まずは root でログイン

• 普段使い用のユーザーを作成o adduser

設定項目は他の UNIX と基本的に同じ Invite username into another groups? [] : wheel

これがないと su で root になれない /etc/group を直接編集しても OK

• インストーラー画面は sysinstall コマンドで呼び出せるo コマンドでもできるが、 sysinstall の方が便利o パッケージのインストールo ネットワーク インタフェースの設定o ストレージの追加

Page 12: FreeBSDで行こう for small server

インストールしたらやること ( 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/

Page 13: FreeBSDで行こう for small server

インストールしたらやること ( 3 )

• 以下、基本的に要 root• ports を使う前に

o portupgrade をパッケージでインストール( ports からでもインストールできますが、時間がかかるので) sysinstall を起動して、 configure - packages か

ら、 ports-mgmt/portupgrade をインストールo ほかにもこんなのを入れておくと便利かも

shells/bash sysutils/tmux

• ports からインストールしたファイルは /usr/local に置かれるo / ... システムのファイルo /usr/local ... ユーザー毎のファイル( / と似た構造)

Page 14: FreeBSDで行こう for small server

インストールしたらやること ( 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/

Page 15: FreeBSDで行こう for small server

インストールしたらやること ( 5 )

• 以下、基本的に要 root• ports を更新

o portsnap fetch update• 更新されたパッケージをリストアップ

o portversion -l "<"• パッケージの更新

o portupgrade < パッケージ名 >• パッケージの削除

o pkg_deinstall < パッケージ名 >

Page 16: FreeBSDで行こう for small server

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 を見る

Page 17: FreeBSDで行こう for small server

/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"

Page 18: FreeBSDで行こう for small server

標準機能

• 標準で含まれているデーモンo FreeBSD ftpo BINDo Sendmailo OpenSSH

• その他のよく使う標準機能o ログローテーションは newsyslogo inet デーモンは xinetdo パケットフィルタリングは ipfilter か pfo cron

Page 19: FreeBSDで行こう for small server

periodic

• cron から定期的に呼び出されるシェルスクリプト群o security , daily (毎日) , weekly (毎週) , monthly (毎

月)• periodic からの標準出力は root宛にメールで送られる

o daily メールの内容(一部)変更されたシステムファイルの一覧 ディスクの使用量 ネットワークインターフェイスの状態 メールキュー

• 標準 + ユーザースクリプトo 標準 /etc/peridoco ユーザースクリプト /usr/local/etc/peridoco ユーザースクリプトの標準出力もメールに含んでくれる

バックアップとか、メンテナンスとか

Page 20: FreeBSDで行こう for small server

FreeBSD jail

• OS 標準の軽量仮想環境o  FreeBSD 上に FreeBSD環境をいくつも作ることができ

る• 何が嬉しい?

o 複数の構成のサーバーを同居させられる PHP4 + MySQL4 で動いているアプリがある PHP5 + MySQL5.5 で動かしたいアプリがある複数のバージョンの混在は面倒 FreeBSD jail なら簡単

o 開発環境をすぐに準備 あれこれ試したいが、システムに触るのはちょっと ... jail なら準備や破棄が簡単環境が分離されているので jail

Page 21: FreeBSDで行こう for small server

FreeBSD jail デモ

• FreeBSD 8 + ezjail

Page 22: FreeBSDで行こう for small server

shutdown -p now

• おしまい• ポポポポーン• ありがとうございました

Page 23: FreeBSDで行こう for small server

アップグレード

• マイナーアップグレード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 回繰り返し)

Page 24: FreeBSDで行こう for small server

ちょっと上級者向けの話

•  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 コア程度まで)