ログイン
編集不可のページディスカッション情報添付ファイル
"alstamber/VirtualServerBuilding"の差分

MMA
66と67のリビジョン間の差分
2012-01-07 16:10:24時点のリビジョン66
サイズ: 10100
編集者: alstamber
コメント:
2012-01-07 16:24:17時点のリビジョン67
サイズ: 10131
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 218: 行 218:
# grub-install /dev/sda(or)hda
行 219: 行 220:
# update-grub2 # update-grub

なにこれ

  • なんかサーバー立ててる人多いし、自分も立ててみたいと思った
  • でもうちにはMacしかない……
  • MacにもServerOSはあるけど、高すぎる
  • なら仮想環境上で動かそう!
    • と思ってたらカーネルハックしたらネイティブ環境で動作するようになった

  • 当初の設計に無理が生じてきた→一から設計しなおすことにした


ゴール

  • blogを自分の管理下にあるサーバで運用する
  • FreeBSDの実験、各種ネットワーク実験を行う
  • →Linuxの実験、各種ネットワーク実験を行う

設計

システムを構成するサーバ

  • 大きく分けて2つのサーバでシステムを運用することとする

VPS

  • 980円の某VPS
  • blogの運用をこちらに切り離す
    • blogはトラフィックが大きいため、自宅での運用に不安が残ったため
    • バックボーンの面でやはりVPSに分があった
  • blog運用のため、PHP5およびMySQLの導入を行う
  • Twitter botを運用する。
  • ZFS Rootで運用
    • Linuxに移行したので、btrfsでの運用に変更。
  • 6rdでIPv6到達性を確保する
    • 6rdが事情で使えなくなったので、6to4に移行。

ドメインの割り振り

  • VPSには589lab.netのドメインを割り振る

実装

2011年6月17日

  • 980円の某VPSを契約
  • デフォルトでCentOSが入っているので、FreeBSDに差し替える
    • 某VPSはコントロールパネルからOSの再インストールの命令を発行できる
    • VNCで画面が自動的に飛んで来る。インストーラの指示に従ってインストール
  • とりあえず再起動
  • minimalインストールなので、rootのパスワードが設定されていない。急いで設定する

 # passwd
  • ユーザがrootだけだと残念なので、通常使用するユーザを作成する

 # adduser ***
  • sudoをインストール

 # cd /usr/ports/security/sudo
 # make install clean
  • visudoを使ってwheelグループをsudoできるようにする
  • rootからログアウトして、通常アカウントでログインしなおす
  • 健康で文化的な最低限度のツールを入れる
    • portmasterとかzshとかvimとか
    • 各種設定ファイルをmoonからコピーしてくる
      • scpを使えば良い
  • MySQLとPHP5を入れる
    • MySQLの設定はここを参考にするhttp://freebsd.server-manual.com/freebsd8_mysql5.html

    • 必要のないデータベースを削除し、wordpress用のデータベースを新しく作る
    • MySQLは最初動かなかったが、一旦アンインストールしてもう一度入れ直したらうまくいった
    • PHP5についてはphp5-extensionsを入れるのを忘れない←MySQLにphpからアクセスできなくなる
    • httpd.confに次の記述を行う。

<IfModule dir_module>
    DirectoryIndex index.html index.php ←追加
</IfModule>

<IfModule mime_module>
    AddType application/x-httpd-php .php 
</IfModule>

2011年6月20日

  • どうもVPSが不安定である。どうやらZFSがやたらメモリを食ってパニックしている様子。
    • メモリ使用量を減らす作業。
  • phpMyAdminを導入。
    • portsからインストール。php.iniで取り扱えるファイルサイズなどを変更。
      • 巨大データベースファイルをアップロードしたりすることがあるため。
  • DNSの設定を変更。
    • フリーのDNSサーバを借りて、589lab.netのAレコードがVPSを向くようにした。
  • munin-masterとmunin-nodeをインストールした。
  • ntpdを起動するようにした。
    • まず/etc/ntp.confを編集。

server ntp.nict.jp
  • /etc/rc.confに追記。

ntpd_enable="YES"
  • サービスを起動。

 # service ntpd start
  • 余談だが490円VPSは存外スペックが良かった
    • pingの帰ってくるスピードが異常に速かったし
    • 惜しむらくはFreeBSDに対応していないことだろう

2011年6月26日

  • やたらDNSサーバへのキューが多いと思ったら、TTLが1分になってた
    • キャッシュ汚染されても困るので1日に変更

2011年7月1日

  • Apacheの設定をチューニング。サーバのレスポンスがよくなることに期待。

2011年8月23日

  • VPSを再起動。ついでにsshのポート番号を変更しておく。

2011年11月4日-5日

  • 長期メンテ。
    • FreeBSD9.0-RC1入れてみる
    • 6rdのパッチが使えなくなったので、v6への対応は6to4にすることにした。
      • Tokyo6to4のお陰で、以前と違いレイテンシも大幅に軽減されている。
    • git入れてみる。
      • 共有リポジトリをVPS上に構築し、開発したものは全部そっちにおこうという計画。
      • git-daemonさんがうまく動かず、苦労したがgit-daemonを直接叩くのではなく、gitコマンドを使ってdaemonを叩くようにするとなぜか動いた。
      • とりあえず意味もなく現在作ってるbotのソースをpush。

2011年11月14日

  • せっかくFreeBSD9.0を入れたのでZFSのバージョンを上げてみる。

# zpool upgrade -a
# zfs upgrade -a
  • そういえばZFSの機能を何もいかしていなかったなあとおもったので、snapshotをとるようにした。
    • /var以外すべてをとるようにした
    • 以下をcrontabに追記

zfs snapshot 名前@`date +%Y%m%d`

2011年12月25日

  • 色々思う所があって、OSをLinuxに変えることにした。
    • ゴールもそれに合わせて変更。FreeBSDだけではなくLinuxもいじれるようにしたいというのがあった。
  • ディストリはDebianを選択。

btrfs boot

  • せっかくなので完全btrfs化というのをやってみた。

インストールと準備

  • まずVPSのコントロールパネルからDebianをインストール。ほぼ自動インストールになってて楽。'
    • この時パーティションの切り方を通常とは少し変える。/パーティションとは別に/bootパーティションを用意する。
      • /bootパーティションはext4
      • /パーティションはbtrfsで用意する
  • sshでログインして、/etc/apt/sources.listに次を追記。(testingはいらんかもしれない)

deb ftp://ftp.jp.debian.org/debian sid main
deb ftp://ftp.jp.debian.org/debian testing main
  • aptitude updateする。
  • zlib1g-dev zlibc kernel-package btrfs-tools libncurses-dev bzip2をインストール。

/bootパーティションの修正

  • /bootパーティションのブロックサイズがなぜか1024なので、4096として改めてファイルシステムを構築しなおす。

# umount /dev/(/bootの場所)
# mkfs.ext4 -b 4096 /dev/(/bootの場所)
  • /etc/fstabを編集する。
    • blkidコマンドを実行して新しい/bootパーティションのUUIDを確認。
    • /etc/fstabを開いて、マウントポイントが/bootの行のUUIDを新しいUUIDに書き換える。
  • 改めて/bootをマウントしなおす。

# mount -t ext4 /dev/(/bootの場所) /boot

カーネルのアップデート

  • www.kernel.orgから3.x系のカーネルのソースコードをダウンロードしてきて、コンパイルする。
    • 今回は実験環境でコンパイルしたものをコピーして使用した。

# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.6.tar.bz2 
# tar xvjf linux-3.1.6.tar.bz2
# cd linux-3.1.6
# make menuconfig
# make-kpkg --initrd kernel_image kernel_headers
# cd ..
# dpkg -i *.deb
# grub-install /dev/sda(or)hda
# mkinitramfs 3.1.6 -o /boot/initrd.img-3.1.6
# update-grub
  • 一旦再起動して、カーネルが更新されていることを確認。

    • 再起動すると上がってこなくなるようです。

/bootのbtrfsへの変換

  • /bootパーティションをbtrfsにコンバートする。

# umount /dev/(/bootの場所)
# btrfs-convert /dev/(/bootの場所)
  • /etc/fstabを書き換える。(/bootの行のext4→btrfsにする)
    • UUIDがまた変わっているのでblkidコマンドで確認する。

UUID=(新しいUUID)   /boot   btrfs ......
  • debianでbtrfsにfsckをしようとすると残念なコトになるらしいので、fsckのフラグを折っておいても良いと思う。

grubのアップデート

  • grubの1.99をインストールする。
    • 何か選択肢が出てくるが、一番上を選んでおく。

# aptitude install grub2
  • grubを更新。

# mount /dev/(/bootの場所)
# grub-install /dev/sda(or)hda
# update-initramfs -t -u
# update-grub

その他行ったこと

  • sudoのインストール
  • sudoの設定
  • zsh, vimのインストール
  • update-alternativesでvimをエディタのデフォルトに
  • 各種設定ファイルのコピー
  • MySQL, PHPのインストール

2011/12/26

  • ただでさえメモリの少ないVPSのリソースをApacheが食べまくってる状況を改善したい。
    • WebServerをnginxというのに変えることにした。

alstamber/VirtualServerBuilding (最終更新日時 2012-04-18 22:11:53 更新者 alstamber)