古いタワー型PCで動いていた自宅サーバーを Raspberry Pi 2 に置き換えました。
GPIOを使ってどうこうとかそういう面白そうなことはやってません。
Raspberry Pi 2 を単なる省電力小型Linuxマシンとして使っているだけです。
このエントリは通常のタワー型PCサーバーではやることが無かった類の作業の記録です。
自宅サーバーなんてイマドキ外部のサービスに頼れば殆ど不要なのですが、データ量がTB単位になるような深い業を背負った人間のファイルサーバーはちょっと困ります。そこに一ヶ月の電気代が50円未満なんて言われる小型PCがあれば惹かれていくのは人の性というものです。
用途
NASが主な用途です。sambaです。
HDDは2台接続して、それぞれメインとバックアップにします。
RAIDではありません。個人用途では常時クローンされることよりも誤操作時の復元容易性の方を重視していいと思っています。
ついでにRSSリーダーにも使っています。Tiny Tiny RSS です。
ハードウェアの準備
Raspberry Pi 2 本体の他に幾つか準備するものがあります。
- 電源 ― ACアダプタなどは付属していません。本体側はマイクロUSB端子なので、スマートフォン用の充電ACアダプタがお手軽にそれなりのパワーを供給できてよいです。ケチな電源を使うと外部機器を繋いだときにシステムがダウンします。
- HDMIケーブル ― 画面がないと始まりません。
- キーボード ― USB接続の標準的なやつでいいです。セットアップが終わったら取り外してもOK。
- マウス ― なくてもいいけど、あればNOOBSの始めにちょっとだけストレスが減ります。
- 本体ケース ― サーバー用途なので放置することになります。基盤剥き出しではホコリとか被ってあまりよろしくなさそうです。カメラのフラッシュでも死ぬし。
- microSD ― OSをインストールするストレージです。4GB程度だと apt-get update が失敗したりと残念な気持ちになれます。16GBぐらいあればとりあえず安心じゃないでしょうか。
勢いでRaspberryPi2買ってとりあえずRaspbianかなーと思ったら手持ちのmicroSDが4GBしかなくて泣きそう
— taqpan (@taqpan) 2015, 2月 21
準備は計画的に。
OSインストール
Raspbianにします。
Debianをベースにした Raspberry Pi 用のOSで、Debian や Ubuntu をよく使っている人ならあまり悩まず使えそうです。
インストールにはNOOBSを使って手を抜きます。
ダウンロードしたファイルをmicroSDに書き込んで電源ケーブルを差し込むだけなので超楽ちん。
NOOBSでのRaspbianインストール方法については既に多くの方が記事にしているので省略。
途中でマウスじゃないと選択しづらいボタンがあった気がします。マウスを使ったのはここだけ。
インストール中に日本語が化けて幾つかの項目を選ぶのが大変でした。
インストール後も sudo raspi-config で同じ設定画面を開けるので後回しにしてもいいです。
インストールが終わったらとりあえずOSのバージョン確認。
$ uname -a Linux raspinas 3.18.7-v7+ $ cat /etc/debian_version 7.8
HDD接続
HDDは駆動部がある精密機械で、貴重なデータが詰まっています。裸で放置するのはちょっと躊躇われます。
はじめは段ボールで適当にHDDケースを作ったのですが、それなりに発熱する機械なので恐くなってやめました。
USB接続できるHDDケースに入れ、それを設置場所にしっかり固定。地震が来ても安心。
また電源のACアダプタが増え、ACアダプタが隣のコンセントを塞ぐ問題が予想されます。そのための短い延長コードがあると安心。
HDDを接続できたら、
マウントして、
パーミッションを設定して、
fstabで再起動時も自動でマウントされるようにして、
sambaを適当に設定してWindows機からの読み書きを確認し、
cron に rsync を仕込んで定期的にバックアップを取るようにして、
NAS完成。
SDカードの寿命を延ばしたい
このままだとログやスワップに使うストレージはSDカードなので、きっと1年ぐらいサーバーとして運用したら死ぬんじゃないかと思います。
予備のSDカードを用意して壊れたら入れ替えればいいじゃないという発想もありますが、出来ることなら寿命は延ばしたいですよね。
とりあえず2つの対策を実施します。
- swapを無効に ― メモリが1GBもあるので無茶しなければswapなしでも暮らしていけます。
- logをHDDに ― HDDは常時接続の前提なので。/var/log にHDDをマウントするだけです。一部書かれないログがありそうだけどまぁいいでしょ。
swapを無効にする
まずは現状確認。
$ free -h total used free shared buffers cached Mem: 927M 916M 10M 0B 67M 758M -/+ buffers/cache: 90M 837M Swap: 99M 0B 99M使われていないけど100MBぐらい予約されてる。
無効にしよう。
$ sudo swapoff --all $ free -h total used free shared buffers cached Mem: 927M 914M 12M 0B 68M 755M -/+ buffers/cache: 90M 836M Swap: 0B 0B 0Bswapはいなくなったけど再起動したらきっと復活してくるので...
$ sudo apt-get remove dphys-swapfile $ sudo reboot再起動後
$ free -h total used free shared buffers cached Mem: 927M 652M 274M 0B 18M 574M -/+ buffers/cache: 59M 867M Swap: 0B 0B 0BOK. swapいなくなってる。
他にも
/tmp をRAMディスクに逃がす とか
LAMPやLAPP環境を組むならデータベースファイルをHDDに置く とか
そんな風に書き込み頻度の高い部分を待避させていくのがよさそうです。
でもパフォーマンスは犠牲になります。
ご利用は計画的に。
0 件のコメント:
コメントを投稿