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:20100526USBメモリやCDに焼いてインストールしたマシンに持ってきます*1
また、ドライバはソースファイルでの提供ですのでコンパルを行う環境を作成する必要があります。
インストールメディアから、以下パッケージを追加でインストールする必要があります*2

  • kernel-headers
  • gcc-4.1.2

次にドライバを展開し、展開したディレクトリの autorun.sh を実行します。「Completed.」のメッセージが出れば導入作業は終了です。
その後、ネットワークの設定を実施してください。

yum updateの実行

ネットワーク通信が可能になった後、yumを利用してモジュールのアップデートを行います。kernelのアップデードが行われる事がありますので作業後に一度リブートを行います。

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. 1個目のディスク(sdaもしくはhda)を選択します。
    1. 1個目のスライス(sda1)を作成し、ex3fsで /boot にマウントするように設定します。
    2. 2個目のスライス(sda2)を作成し、swapデバイスとして指定します。
    3. 3個目のスライス(sda3) を作成し、linux LVMとして定義します(rootVG用のPVになります)。
    4. 残りはOSインストール後に revVG用のpvとして設定するので今はそのままにしておきます。
  2. 2個目のディスク(sdbもしくはhdb)を選択します。
    1. 1個目のスライス(sdb1) を作成し、linux LVMとして定義します(rootVG用のPVになります)。
    2. 残りはOSインストール後に revVG用のpvとして設定するので今はそのままにしておきます。
  3. 3個目のディスク(sdcもしくはhdc)を選択します。
    1. 1個目のスライス(sdc1) を作成し、linux LVMとして定義します(rootVG用のPVになります)。
    2. 残りはOSインストール後に revVG用のpvとして設定するので今はそのままにしておきます。
  4. 「LVM」」をクリックします。
    1. sda3、sdb1、sdc1 を選択しrootVGを作成します。
    2. rootVGからrootLVを割当て、ex3fsで / にマウントするように設定します。
    3. 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
ディスクC
スライス 用途 容量
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 ミラー

rootVGのLV構成図。

VG名 容量 空き容量
rootVG 180G 100G

recVG

LV名 マウントポイント 割当容量 備考
epgrecLV /var/www/epgrec 10G ミラー
videoLV /var/www/epgrec/video 1.5T

recVGのLV構成図。

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イメージを用意しました。また、今回のマザーボードオンボードNICRealtek 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に続く

*1:ミラー領域用に2個、そのほかに1個

*2:可用性を担保せずにディスクを追加する場合はスパンディスクやJBODを利用します

購入物

上記検討項目から、以下に購入したパーツを記載します。これ以外もいろいろ買ってますよ。

次の日記d:id:tirol_choko:20100526に続く