（このクラウド時代に）自作サーバにOSをインストールする話

# いつもの

皆様こんにちは、はじめましての方ははじめまして。

以前 [某Advent Calendar](http://qiita.com/advent-calendar/2014/cybird) にて [トレンドを完全に無視した話](http://qiita.com/asuky/items/b13f4edc0e68dee77680) をそれまでの流れをぶった切ってやった @asuky です。
一応物理環境とか仮想化とかネットワークが専門のつもりですが、正直怪しいです。

前回はこのクラウド全盛な世の中で、最近 [IDCフロンティアさんもクラウドサービス開始](http://www.idcf.jp/cloud/) して、AWSと比較して安かったりとか、請求書払いが出来たりコンピューティングの利用料上限があったりして国内の会社が使いやすいサービスだったりとか [ハイブリッドクラウドとかもできちゃう](http://www.idcf.jp/solution/hybrid/) とかやってたりして楽しそうな状況に背を向けて自作サーバを作りました。

前回の内容だけでは「物理サーバをそのままたくさん使うようなシチュエーション」でも無い限り、個人利用ではなかなか4コア8スレッドの昨今のCPUを使いきれるものではありません（PC1台でゲーム実況をやるとか、エンコードをかける等の特殊な高負荷環境でも無い限り…）。

仮想サーバを小分けで作って利用することで、簡単に物理サーバのスペックを使い切ることが可能となる（かもしれない）ですし、物理サーバと比較して取り扱いも楽になります。

今回はKVMを導入するための…OSインストールするところまで書きます（OSインストールまでの分量が意外と多かったのでKVMは次回です、申し訳ありません）。

なお下記前提で進めますのでよろしく。

* 自作サーバは（リモートではなく）手元で触れる
* CentOS 6.* 64bitを利用

なお、例によってサーバを起動した瞬間に自作KickstartやCobblerあたりが走ってOSが勝手にインストールされ、なんとかStackのホストサーバに自動的に組み込まれちゃうような豪の環境を構築されている方は、そっとブラウザを閉じて頂ければ幸いです。

# OSのインストール前にやること

素直にCentOSを入れて、qemu-kvmを突っ込んでおしまいにできれば良いのですが、なかなかそうもいかないところが結構あるので説明しておきます。


## 仮想化機構を有効にすること

BIOS上で **VT-dを有効にしてください**、これがないと動作が大変もっさりします（QEMU側で物理CPUの仮想化支援機構を使うため）。

…どこかと言われるとベンダによって異なるので困るのですが。まぁ**BIOS画面のどこかにあります**としか。

![vtd.jpg](https://qiita-image-store.s3.amazonaws.com/0/5651/a7459ca6-5a2b-781e-39e2-6b1a858beb4d.jpeg)

上記はGIGABYTEのBIOSですが、他のメーカだろうがサーバベンダだろうが大差はないです。Virtualizationとか書いてあるかと思うので適当に探してください。

昨今のサーバやPCですと、大体**デフォルトONになっているケースが多い**ようですが、確認しておくに越したことはありません。


## Memtestを実施すること

ベンダ製のサーバは保守にさえ入っていれば契約約款に沿ってパーツ交換してもらえますが、自作サーバの場合は自分で対応しないといけないので、メモリに問題が無いかをまず確認します。

**Memtestを最低1pass実行してエラーが無いことを確認**しましょう。

![memtest2.jpg](https://qiita-image-store.s3.amazonaws.com/0/5651/90f8a220-7863-55f7-eab5-372a85e8599a.jpeg)

なおCentOSのセットアップメニューに同梱されています。

![memtest1.jpg](https://qiita-image-store.s3.amazonaws.com/0/5651/8009a19e-ce0f-824e-e1bd-b7bb9e15d8d8.jpeg)

一昔前は最低3,4passぐらいやれと言われたものでしたが、最近のメモリはそんなにエラー出ないので1passで良いと思うのです…**1pass大体45-60分程度**ですので、好きなだけやってください。
（よく自作PCを扱う店に行くと、レジ裏でMemtestがひたすら走っていたりする光景が見えたりとかなんとか）

## その他、気にしないといけないこと

### UEFIとBIOS

**素直にBIOS**にしておきましょう。自作の場合だとWindows8のせいでUEFIデフォルトだったりするケースが多いですが、BIOSで明示的にBIOS (Legacy BootだのOnlyだの) を指定します。

…この辺りを詳しく説明すると長くなるので割愛しますが、UEFIは色々面倒ですし、そもそもそんな現時点 (2014年12月) では使いません。

SSDを利用しているならまず2TBに引っかかりませんし、商用利用のサーバでSASのHDDを使うようなケースでも、RAIDのリビルド時間との絡みもあって容量の多いディスクは好まれないと考えます。
（Hadoop等を使うような環境だとまた別なのかもしれませんが…）

### CPU周りの設定

前述の通り、**Turbo Boostはサーバ用途の場合はOFF**にしたほうが良いと思います（熱の問題もあるし、一部のコアだけ性能を上げられても困るケースが多いです）。
**ハイパースレッディングは確実にON**にしましょう、大体普通ONになっていますが。

### オンボードのRAID機能

個人的には**使わなくて良い**と思うのです、なんか中途半端な感じなのでCentOSのインストール時に設定できるソフトウェアRAIDで良いと思っています。
もちろん検証したわけではありませんが、廉価なマザーボードのRAID機能より、OSS環境で衆人の目に晒されているソフトウェアRAIDの方が信用出来ると思うためです。

ベンダ製のサーバに真っ当なRAIDカードを載せているような環境なら、迷わずそちらでハードウェアRAID (いわゆるVirtual Disk) を組む方が良いと思うのですが…。

# OSのインストール時にやること

OSをインストールする前の分量がだいぶ多くなりましたが…。

OSのインストールはそんな難しくありません。

ポイントは**UTCを無効にする**ことと、**パーティションを適切に分ける**ことです。

UTCの無効はタイムゾーン選択の部分でチェックを外すだけです（放置すると8時間ずれたりサマータイムが発動したりして面倒）。

パーティションですがは、swapと/varだけ別パーティションにして数Gほど確保し、残りは/で良いのではないでしょうか。
**swapが無いのはNG**として多めにswap確保しても、仮想サーバに使える容量が減ります。
ということで…数G程度で良いと思うのです。

あと「ベース」と「開発ツール」はMinimal時でも追加しておくとストレス溜まりません。
（scpが使えなかったりgccがなかったりすると面倒なので…）

# 終わりに

ここまでやると、CentOSが入った小粋な自作サーバが出来ているはずですので、物理サーバとしてそのまま使われる方はそのまま使って下さい。
ファイルサーバ等に使われる場合はディスク増設してsamba突っ込んだり、DBサーバとして使っても良いかとは思います。

次回はこのCentOSが入った小粋な自作サーバに、KVMをインストールして仮想サーバを使えるように出来れば良いなと思います。

> 2014/12/31 00:55
> OSインストールまでの分量が意外に多くKVMまで行かなかったので、冒頭部分を修正しました。