revVGの作成
fdiskによるスライスの切り出し
fdiskコマンドを利用して、残りの空きディスクを割り当てます(sda4、sdb2、sdb2)。その際、ラベルを 0x8e(LVM)に指定します。
以下、私の環境の設定です。
$ fdisk -l /dev/sda Disk /dev/sda: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 535 4192965 82 Linux swap / Solaris /dev/sda3 536 8184 61440592+ 8e Linux LVM /dev/sda4 8185 243201 1887774052+ 8e Linux LVM $ fdisk -l /dev/sdb Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 * 1 7649 61440561 8e Linux LVM /dev/sdb2 7650 243201 1892071440 8e Linux LVM $ fdisk -l /dev/sdc Disk /dev/sdc: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdc1 * 1 7649 61440561 8e Linux LVM /dev/sdc2 7650 243201 1892071440 8e Linux LVM
pvcreate によるPV作成
以下コマンドを実行し、pvを作成します。
$ pvcreate /dev/sda4 /dev/sdb2 /dev/sdc2
vgcreateによるVGの作成
以下コマンドを実行し、VGを作成します。
$ vgcreate recVG /dev/sda4 /dev/sdb2 /dev/sdc2
以下、私の環境の設定です。
$ pvdisplay -C | grep -v rootVG PV VG Fmt Attr PSize PFree /dev/sda4 recVG lvm2 a- 1.76T 1.73T /dev/sdb2 recVG lvm2 a- 1.76T 1.74T /dev/sdc2 recVG lvm2 a- 1.76T 238.41G
lvcreateによるlvの作成
$ lvcreate -L 1.5T -n videoLV recVG $ lvcreate -m 1 -L 100G -n epgrecLV recVG
epgrecLVは録画プログラム用を配置するLVなのでミラー化します。そのため、-mオプションでミラー指定をしています。
以下、私の環境の設定です。
lvdisplay -C | grep -v rootVG LV VG Attr LSize Origin Snap% Move Log Copy% Convert epgrecLV recVG mwn-ao 10.00G epgrecLV_mlog 100.00 videoLV recVG -wa-ao 1.50T
次の日記d:id:tirol_choko:20100609に続く
インストール後作業
残りをメニューに従って作業した後、X Window で一般ユーザで作業が行えるようになります。この状態になってからターミナルを立ち上げ rootユーザで以下作業を行います。
Realtech NICドライバ導入
ダウンロードしたドライバファイルd:id:tirol_choko:20100526をUSBメモリやCDに焼いてインストールしたマシンに持ってきます*1。
また、ドライバはソースファイルでの提供ですのでコンパルを行う環境を作成する必要があります。
インストールメディアから、以下パッケージを追加でインストールする必要があります*2。
- kernel-headers
- gcc-4.1.2
次にドライバを展開し、展開したディレクトリの autorun.sh を実行します。「Completed.」のメッセージが出れば導入作業は終了です。
その後、ネットワークの設定を実施してください。
LVのミラー化
以下コマンドを実行して指定した lvのミラーを行います。
lvconvert -m 1 rootVG/rootLV
-m で、ミラーイメージを何個複数pvボリュームに持たせるか指定します。その際、通常ですと、指定したミラーイメージ数 + 1個(同期ログ保存用)のPVが必要になります。上記の場合は、PVが3個必要にないます。同期ログのために消費するPEは1個です。
以下、私の環境での確認結果です*3。
*1:2010/05/24現在のファイル名は r8168-8.018.00.tar.bz2
*2:依存性がありますので下記パッケージ以外のパッケージ導入が必要になります。
*3:上記手順以外の追加作業を行っていますので完全に同一にならない事をご了承ください
CentOSのインストール
ディスク利用計画も立ったので、CentOSのインストールを行います。今回の録画サーバではCD/DVD/BDのドライブを利用した運用は考慮していないので接続も購入もしていません。そのため、インストールにはUSBの外付けドライブを利用しました。BIOSでUSBデバイスをFirstBootに選択してCentOSのインストールDVDから起動します。
ディスク構成
今回のシステムの導入では、デフォルトのインストールと異なるインストールを行っています。
パーティション選択のメニューで「高度なストレージ構成」をクリックします。
- 1個目のディスク(sdaもしくはhda)を選択します。
- 2個目のディスク(sdbもしくはhdb)を選択します。
- 1個目のスライス(sdb1) を作成し、linux LVMとして定義します(rootVG用のPVになります)。
- 残りはOSインストール後に revVG用のpvとして設定するので今はそのままにしておきます。
- 3個目のディスク(sdcもしくはhdc)を選択します。
- 1個目のスライス(sdc1) を作成し、linux LVMとして定義します(rootVG用のPVになります)。
- 残りはOSインストール後に revVG用のpvとして設定するので今はそのままにしておきます。
- 「LVM」」をクリックします。
- sda3、sdb1、sdc1 を選択しrootVGを作成します。
- rootVGからrootLVを割当て、ex3fsで / にマウントするように設定します。
- rootVGからvarLVを割当て、ex3fsで /var にマウントするよう設定します。
ディスク構成注意点
インストールメニューでは、 lvのミラーは行う事ができません。導入後作業で実施します。
ネットワークデバイス設定
d:id:tirol_choko:20100526に記載した、Realtekドライバの問題が発生する可能性があるので、導入時にはネットワークのセットアップを行いませんでした。
録画サーバのディスク計画
今回のサーバでは、LVM利用を前提として以下のディスク利用計画を立てています。
ポリーュムグループ
ボリュームグループ(Volume Group:VG)とは、複数の物理ディスクからなるディスクのグループのことになります。
今回はシステム用と録画データ用の2つのボリュームグループを用意します。
rootVG
OSとログ用のボリュームグループ
recVG
録画用ボリュームグループ
物理ディスクのスライス
ディスクのスライス計画です。一部のスライスはlinuxパーティションやスワップデバイスに割り当てますが、大半の容量はLVMの物理ボリューム(Physical Volume:PV)として割り当てを行います。
ディスクA
スライス | 用途 | 容量 |
---|---|---|
1 | /boot | 100M |
2 | swap | 4G |
3 | rootVG の PV用 | 60G |
4 | recVG のPV用 | 1.76T |
ディスクB
スライス | 用途 | 容量 |
---|---|---|
1 | rootVG の PV用 | 60G |
2 | recVG のPV用 | 1.76T |
論理ボリューム
論理ボリューム(Logical Volume:LV)とは、VGから切り出した論理的なディスクボリュームです。論理ボリュームに置くデータの特性を考慮して、LVの構成オプションを決定します。
rootVG
LV名 | マウントポイント | 割当容量 | 備考 |
---|---|---|---|
rootLV | / | 20G | ミラー |
varLV | /var | 20G | |
mysqlLV | /var/lib/mysql | 10G | ミラー |
VG名 | 容量 | 空き容量 |
---|---|---|
rootVG | 180G | 100G |
recVG
LV名 | マウントポイント | 割当容量 | 備考 |
---|---|---|---|
epgrecLV | /var/www/epgrec | 10G | ミラー |
videoLV | /var/www/epgrec/video | 1.5T |
VG名 | 容量 | 空き容量 |
---|---|---|
rrecVGVG | 5.28T | 3.7T |
次の日記d:id:tirol_choko:20100528に続く
LVMとは?
複数のディスクボリュームを仮想化し、1つのディスクとして見せたり異なる容量のディスクに見せかける「ボリュームマネージャ」と呼ばれるものです。Windowsでも、ディスク管理ツールを起動すると、「仮想ボリュームマネージャに接続します」などのダイアログが見られると思います。ハードウェア/ソフトウェアRAIDとファイルシステムの間を取り持つソフトウェアと理解していればよいかと思います。
wikipedia:LVM なんかも参考に。
LVMの利点は、ディスク管理が柔軟になるところです。たとえば、今回の録画サーバは初期構成ではディスクは3個用意しますが将来的にはディスクを追加することによって容量を増やすことを考えています。その際、LVM上でディスクを追加し、その中から仮想ディスクに割り当て量を増やすことによって、簡単にディスク容量を追加する運用を行うことができます。
OSインストール前に
ハードウェアを組み立て、電源が入ることと接続したデバイスがBIOSから確認することができました。
今回はPT2で録画サーバ構築の実績が多いディストリビューションでCentOSを選択しました。2010年5月末現在、最新はCentOS5.5でしたのでそのDVDイメージを用意しました。また、今回のマザーボードのオンボードのNIC「Realtek RTL8111DL」はCentOSではあまり評判がよくないgoogle:CentOS Realtek 8111ので、OS標準のドライバではなく、RealtekのHPで公開されているLinuxドライバ(http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=4&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2)をダウンロードしておきました。
これで、OS導入の準備がおわりましたが、今回はディスク利用方法について整理を行っておきたいと思います。
ディスクに記録するデータ
録画サーバといっても、番組情報を記録するだけではありません。このマシンで保持するデータを以下にまとめてみました。
- OSと付随プログラム
- 各種ログ
- 録画プログラム
- 録画データ
データの整理観点
上記にあげたデータを次の観点で整理してみましょう。
- データの重要性 このシステムでどれくらい重要なものか?
- データサイズ どの程度のサイズの情報か?
- 失った場合の影響 失った場合の影響はどの程度か?
- リスク対策 失った場合の対処法や失わないための対策はあるか?
整理してみました
対象データ | データの重要性 | データサイズ | 失った場合の影響 | リスク対策 |
---|---|---|---|---|
OSと付随プログラム | 重要 | 中 | OSが稼動しなくなる | ミラー構成/バックアップリカバリー |
各種ログ | 普通 | 中 | 解析ができなくなる | あきらめる |
録画プログラム | 重要 | 小 | 録画がでなくなる | ミラー構成/バックアップリカバリー |
録画データ | 重要 | 特大 | 録画データがなくなる | エンコード後バックアップ |
整理内容から考えるディスク構成
上記整理から、ソフトウェアやハードウェアでRAIDを組んだ場合、必要なHDDは3個になります*1。また、ミラー構成にするディスクは容量が少なくていいのですが、小データのためにSATAのポートを2個消費するのは抵抗があります。
録画データは時間経過によってデータが増えていきます。そのため、定期的にHDDを追加する必要があるのでディスク追加時に同期処理が必要なRAID0やRAID5は利用しにくいと考えます*2。
ディスクをより柔軟に構成するため、今回は論理ボリュームマネージャ(LVM)を利用してディスクを管理することにしました。
次の日記d:id:tirol_choko:20100527に続く
購入物
上記検討項目から、以下に購入したパーツを記載します。これ以外もいろいろ買ってますよ。
- ASRock M3A785GMH/128 amazon: ASRock M3A785GMH
- AMD Athlon IIX2 260u amazon: Athlon
- HGST HDS722020ALA330 amazon: HGST HDS722020ALA330
- サントラスト タオエンタープライズ SHADOW F http://www.sun-trust.net/products/suntrust/1732.html
- アースソフト PT2 amazon: アースソフト PT2
- NTT-ME SCR3310-NTTCom amazon: NTT-ME SCR3310
次の日記d:id:tirol_choko:20100526に続く