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 667MHz
  o メモリ 512MB
  o ストレージ 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-CURRENT
  o ここからリリースされるときに 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' (自動設定)でOK
   o ただしディスク全体を使わないなら注意して
   o 一般「パーティション」 ⇔ FreeBSD用語「スライス」
• わからないところは何もせずにすっとばす
   o システムファイルのインストール以外はあとでもできる
   o DistributionsはMinimalで十分
FreeBSDのインストール...は時間が...
インストールしたらやること (1)

• 以下、基本的に要root
  o まずは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 start
   o 起動スクリプトは次の場所
       標準 /etc/rc.d
       portsなど /usr/local/etc/rc.d
• それ以外の設定は /etc/defaults/rc.conf を見る
/etc/rc.confの例

 # system settings
 keymap="us.iso"
 blanktime="120"
 saver="green"

 # network settings
 defaultrouter="x.x.x.x"
 ifconfig_rl0="inet x.x.x.x netmask x.x.x.x"
 hostname="xxx"

 # daemons
 apache22_enable="YES"
標準機能

• 標準で含まれているデーモン
  o FreeBSD ftp
  o BIND
  o Sendmail
  o OpenSSH
• その他のよく使う標準機能
  o ログローテーションは newsyslog
  o inetデーモンはxinetd
  o パケットフィルタリングはipfilterかpf
  o cron
periodic

• cronから定期的に呼び出されるシェルスクリプト群
   o security , daily(毎日) , weekly(毎週) , monthly(毎月
     )
• periodicからの標準出力はroot宛にメールで送られる
   o dailyメールの内容(一部)
       変更されたシステムファイルの一覧
       ディスクの使用量
       ネットワークインターフェイスの状態
       メールキュー
• 標準 + ユーザースクリプト
   o 標準 /etc/peridoc
   o ユーザースクリプト /usr/local/etc/peridoc
   o ユーザースクリプトの標準出力もメールに含んでくれる
       バックアップとか、メンテナンスとか
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-p1
  o freebsd-update fetch install
• メジャーアップグレード
  o メジャーバージョンが上がった場合
       例)7.x-RELEASE/8.1-RELEASE → 8.2-RELEASE
  o やり方はバージョンごとに違う
       りりーアナウンスに書いてあります
       最近(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コア程度まで)

FreeBSDで行こう for small server

  • 1.
    FreeBSDで行こう for small server 長沼 立巳
  • 2.
    自己紹介 • 長沼立巳(ながぬまたつみ) • 上田市の機器メーカー勤務 •使っているOS o デスクトップはUbuntu  9.04(2009年4月リリース)くらいから o サーバーはFreeBSD  3.4(2000年12月リリース)くらいから  長いだけのライトユーザー
  • 3.
    FreeBSDのお話 • フリーでオープンなオペレーティングシステム • サーバーとか、組み込みとか o デスクトップ用途は弱いかも • 今回は小規模サーバー向けのお話
  • 4.
    FreeBSDのお話 • 個人用サーバー、SOHOサーバー、部門サーバー • 大体のターゲット o Pentium II以降、Core i3とか o メモリ 256MBから4GBくらいまで o ストレージ 2GBから1TBくらいまで o Webサーバー、メールサーバー • 我が家の常時稼動サーバー(8年くらい) o VIA Eden ESP-6000 667MHz o メモリ 512MB o ストレージ 32GB SSD
  • 5.
    なぜFreeBSDなのか • 無料 • シンプル • 簡単 • 便利
  • 6.
    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-CURRENT o ここからリリースされるときに 9.0-RELEASE という名 前になる
  • 7.
  • 8.
    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メモリ用。
  • 9.
    FreeBSDのインストール...は時間が... • standard /express / custom が選べるが o できることはほぼ同じ o standard ... ウィザード形式。起動するデーモンが選べる o express ... ウィザード形式 o custom ... 手順の一覧から選べる • ディスクの設定は面倒なら 'a' (自動設定)でOK o ただしディスク全体を使わないなら注意して o 一般「パーティション」 ⇔ FreeBSD用語「スライス」 • わからないところは何もせずにすっとばす o システムファイルのインストール以外はあとでもできる o DistributionsはMinimalで十分
  • 10.
  • 11.
    インストールしたらやること (1) • 以下、基本的に要root o まずはrootでログイン • 普段使い用のユーザーを作成 o adduser  設定項目は他のUNIXと基本的に同じ  Invite username into another groups? [] : wheel  これがないとsuでrootになれない  /etc/group を直接編集してもOK • インストーラー画面はsysinstallコマンドで呼び出せる o コマンドでもできるが、sysinstallの方が便利 o パッケージのインストール o ネットワーク インタフェースの設定 o ストレージの追加
  • 12.
    インストールしたらやること (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/
  • 13.
    インストールしたらやること (3) • 以下、基本的に要root •portsを使う前に o portupgradeをパッケージでインストール(portsからでも インストールできますが、時間がかかるので)  sysinstallを起動して、configure - packages から、 ports-mgmt/portupgrade をインストール o ほかにもこんなのを入れておくと便利かも  shells/bash  sysutils/tmux • portsからインストールしたファイルは /usr/local に置かれる o / ... システムのファイル o /usr/local ... ユーザー毎のファイル(/ と似た構造)
  • 14.
    インストールしたらやること (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/
  • 15.
    インストールしたらやること (5) • 以下、基本的に要root •portsを更新 o portsnap fetch update • 更新されたパッケージをリストアップ o portversion -l "<" • パッケージの更新 o portupgrade <パッケージ名> • パッケージの削除 o pkg_deinstall <パッケージ名>
  • 16.
    FreeBSDの基本 /etc/rc.conf • ネットワークの設定、システムの設定 •daemonの有効化、無効化 o portsからインストールしただけでは起動できない o Apache 2.2なら、「apache22_enable="YES"」を追加 o 渡すフラグなどもここで設定できる o service apache22 start o 起動スクリプトは次の場所  標準 /etc/rc.d  portsなど /usr/local/etc/rc.d • それ以外の設定は /etc/defaults/rc.conf を見る
  • 17.
    /etc/rc.confの例 # systemsettings keymap="us.iso" blanktime="120" saver="green" # network settings defaultrouter="x.x.x.x" ifconfig_rl0="inet x.x.x.x netmask x.x.x.x" hostname="xxx" # daemons apache22_enable="YES"
  • 18.
    標準機能 • 標準で含まれているデーモン o FreeBSD ftp o BIND o Sendmail o OpenSSH • その他のよく使う標準機能 o ログローテーションは newsyslog o inetデーモンはxinetd o パケットフィルタリングはipfilterかpf o cron
  • 19.
    periodic • cronから定期的に呼び出されるシェルスクリプト群 o security , daily(毎日) , weekly(毎週) , monthly(毎月 ) • periodicからの標準出力はroot宛にメールで送られる o dailyメールの内容(一部)  変更されたシステムファイルの一覧  ディスクの使用量  ネットワークインターフェイスの状態  メールキュー • 標準 + ユーザースクリプト o 標準 /etc/peridoc o ユーザースクリプト /usr/local/etc/peridoc o ユーザースクリプトの標準出力もメールに含んでくれる  バックアップとか、メンテナンスとか
  • 20.
    FreeBSD jail • OS標準の軽量仮想環境 o FreeBSD上にFreeBSD環境をいくつも作ることができる • 何が嬉しい? o 複数の構成のサーバーを同居させられる  PHP4 + MySQL4で動いているアプリがある  PHP5 + MySQL5.5で動かしたいアプリがある  複数のバージョンの混在は面倒  FreeBSD jailなら簡単 o 開発環境をすぐに準備  あれこれ試したいが、システムに触るのはちょっと...  jailなら準備や破棄が簡単  環境が分離されているのでjail
  • 21.
    FreeBSD jail デモ •FreeBSD 8 + ezjail
  • 22.
    shutdown -p now •おしまい • ポポポポーン • ありがとうございました
  • 23.
    アップグレード • マイナーアップグレード o セキュリティパッチとか  例)8.2-RELEASE → 8.2-RELEASE-p1 o freebsd-update fetch install • メジャーアップグレード o メジャーバージョンが上がった場合  例)7.x-RELEASE/8.1-RELEASE → 8.2-RELEASE o やり方はバージョンごとに違う  りりーアナウンスに書いてあります  最近(8.2-RELEASE)の例  freebsd-update upgrade -r 8.2-RELEASE  freebsd-update install ; reboot (2回繰り返し)
  • 24.
    ちょっと上級者向けの話 • 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コア程度まで)