さくらのVPSにFreeBSD 10.2を入れてみる
背景とまくら
自宅鯖缶をやっている場合、いわゆるCloudサービスやDataCenterを利用している場合と違って、対外接続環境は一般に貧弱になる。 我が家も例に漏れず、対外接続環境はSPoFだし、対外接続用機器だってSPoFである。 しかし、
- 自宅環境で
- AS取って
- Addressブロックも取って
- BGPでMulti-Homing
などという大げさな事、やっていられるわけも無い。
ISPとの接続は2本あるのだが、Flet'sを利用したMulti-Sessionなので、当然、回線終端は工事業者が設置した終端装置。
とはいえ、終端装置はただのONUとして使っていて、Routerとしての機能はまるで利用せず、ONU→手元のSwitch→pfSense。
おかげさまで、終端装置の機能をまるで利用していないから、終端装置のSecurity Updateとか考える必要が(ほぼ)無い。
ツッコミが来たので書いておくと、ISPとの契約は2本あるが、1本のFlet's回線上にMulti-Sessionで接続している。
1つは、某ISPから/28の空間を割り当ててもらって、試験用サーバーやMail Serverなどを置いてあるService Network
1つは、某々ISPの普通のInternet接続を買い、自分や家族の生活用に利用している。
つまり、実質的には、複数のNetworkを独立して使っている。
このような環境において面倒なのは、
- 自宅鯖や自宅鯖基盤(仮装基盤)の更新における停止
- 雷などの天災による瞬停によるシステム再起動による停止
- 機器故障などによる物理的停止
である。
これらのサービス停止要因は、多くの場合、停止時間も短いから、まぁ、それなりになんとかなる(なってほしい)わけだが、それでも停止時間がかなり長くなる可能性は否定できない。
というわけで、やはりあまり止まって欲しく無いサービスに関しては、自宅環境が散っても最小限動作する環境が欲しいわけである。
以上から、とりあえず、DNS鯖(Contents鯖)とSMTP鯖(Backup MX)を外部のVPS上に置こうと決心した。
という状況はすでに10年以上前からあるので、当然外部に置いている鯖があったのだが、まぁ、心機一転。1から作ろうかと。
選択肢はいっぱいあるのだが、今回は、さくらの一番安いプラン(さくらのVPS 512)を選んだ、 理由は、
- 安い (¥635/月)
- FreeBSD 10.2を動かすことができる(保証は無いが、動作実績はある)
- 2week お試し無料(但しクレジットカード決済の場合のみ)
- 最低契約期間が3month。
- VNCを利用して、Console画面が握れる
- Diskが20GとはいえSSD
である。 お試し期間中ならいつでもやめられるから、試してみるに最適という事もある。 但し、プラン変更する場合、VM instanceを解約し、新しく作らなければならない(鯖の移行や、メモリー/Disk容量の増設、削減はできない)ということをちゃんと認識しておくこと
Installの流れ
実は、それほど難しい事はなく、以下の流れでやるだけ。
- さくらインターネットの http://vps.sakura.ad.jpから申し込む。
- はじめてのばあい、「初めて利用する」と「同意する」にチェックを入れた上で「次へ」をクリック。
- あとは、必要情報などを入力して、どんどん進めば良い
- で、リージョンとプランを選択し、支払い方法を入力していけば、契約ができる。
- 手続き類が全部終わったら、http://vps.sakura.ad.jpからコントロールパネルログインをクリックする
- 認証方法選択画面に飛ぶので、「会員IDでログイン」から「ログイン」をクリック
- 会員IDとパスワードを入力して「ログイン(認証)」をクリックする
- サーバー一覧画面が表示される。
- 今回契約したサーバーをクリックする
- 諸元を確認する
- 右上のOSインストール(Pull down Menu)からISOイメージインストールを選択
- SFTPアカウントを作成
- 指定された場所にISOイメージをsftpでputする
- 書かれている通りに作業すれば、putしたISOイメージから起動するので、あとは普通にFreeBSD 10.2をInstallする
- この時、HTML5を解釈できるWeb Browserを利用して、VNC CosoleをHTML5から操作できるのが便利。
- Installが終了したら、VM instanceをshutdown(HALT)する。
- OSインストール(Pull down Menu)からISOイメージインストールを選択
- SFTPアカウントを削除(ISOイメージも削除される)する
- Instanceを起動する
手順的に面倒そうに見えるが、実際はとても簡単にInstallできた。
さて、ちょっとだけ落穂拾い
このプラン、Main Memoryが512MiBしかないので、ちょっとメモリー負荷が上がると色々面倒なことになりそうな気がする。 しかし、たかだかほとんどRequestのないサイトのNSとBackup MXやるくらいでお値段1.8倍払うのもちょっと癪である。
しかし、このプランは「SSD」なので、Disk Accessは「それなりに高速」であることが期待出来る。
ならば… 「いざという時のために、SwapをFilesystem側に置いてしまえばいい!」という(ある意味でとても酷い)解決策を採る事にした。
以下に作業を。
- まずswapinfoを実行し、Swapがどうなっているかを確認
# swapinfo Device 1K-blocks Used Avail Capacity /dev/vtbd0p3 1048540 416 1048124 0% #
- 次に、一応Diskのパラメータも見ておく
# gpart show /dev/vtbd0 => 34 41942973 vtbd0 GPT (20G) 34 1024 1 freebsd-boot (512K) 1058 39844864 2 freebsd-ufs (19G) 39845922 2097084 3 freebsd-swap (1.0G) 41943006 1 - free - (512B) #
- これで、Swapが、Geom管理されているvtbd0下に1G確保されている事が分かった。
- 実はこれを見て、拡張するかどうか少し迷ったが、今後の事も考えてあと1Gほどswapを追加する事にした。
- ddでswapfileを作成する
- どこにファイルを置くかは悩んだのだが、/var/cache下にした。
- dd if=/dev/zero of=/var/cache/swapfile1 bs=1m count=1024
- 一応ファイルサイズを確認しておく。
- Owner/Group/Permissionを設定
- chmod 0600 /var/cache/swapfile1
- chown root:wheel /var/cache/swapfile1
- で、新しく作ったSwapfileをSwapに追加する
- mdconfig -a -t vnode -f /var/cache/swapfile1 -u 0 && sudo swapon /dev/md0
- Swapの状態を確認する
# swapinfo -m Device 1M-blocks Used Avail Capacity /dev/vtbd0p3 1023 11 1012 1% /dev/md0 1024 0 1024 0% Total 2047 11 2036 1% #
- 最後に、rc.confを設定
- 以下を追加
swapfile="/var/cache/swapfile1"
以上。