そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

MicroServer N54L にハードディスクを増設したよー

f:id:blue1st:20130923232542j:plain

サーバ買った目的の一つがnasneの代替にNASとして使うためだった手前、nasneと同じ250GBだけじゃ不足だなーと思えてきたのでHDD増設してみた。

HDD選定

これまでHDDを買うときはいつも一万円程度の価格帯のものを選んできた。

そんでもって今回もそのあたりのものをと思ったのだけれど、今って一番容量があるのだと3TBもあるんですな。

おっさん的には今だに80GB/万円あたりの感覚なので、軽くカルチャーショックを受けるわけだが、一方でかつて幾度と無くHDDを壊してきた身としては、容量の大きなHDDを使うのはそれはそれで怖いなーと思ったりもする。

ちょっとした葛藤と財布との相談の末、価格的に安くそこそこ容量があり、何よりNAS用と銘打ってあるWDのRed 1.0TBを使うことにした。

とりあえず設置

ひとまず電源を切る。

ホットスワップには対応してないとはいえ、マウント/アンマウントをしっかりやれば問題ないらしいけど、いうても精密機器なので危険は冒したくない。

フロントを開けてマウンターを取り出す

f:id:blue1st:20130923232723j:plain

f:id:blue1st:20130923232756j:plain

HDDをネジ止めする

うっかり買い忘れていて焦ったが、ネジのストックがあってよかった。

(追記:見落としてたけど、よくよく見たらフロントパネルの裏にネジやら工具やらが設置されてた。至れり尽くせり!)

マウンターを挿入

f:id:blue1st:20130923233957j:plain

いつものPCへのHDD増設だとケーブルの取り回しが面倒臭かったりするのだが、N54Lについてはマウンターを挿入するだけなので楽で良い。

システムで使うための設定

共有で使うディレクトリは/home/sambaに設定しているし、システム領域とユーザ領域を物理的に分けたいと思い、今回は/homeを置き換えることにした。

LinuxにHDDを増設するのは初体験だったので、ググったら出てきたext3でフォーマット→マウントという手順でやったものの、どうやら今時はLVMを使うのが良いらしいのでやり直し。

そんなわけで、以下LVMを使ったHDD増設手順。

ひとまずパーテンションを切る

ちなみにSATAのHDDはsda、sdb、sdc…となる。

今回は2つ目なのでsdb。

# fdisk /dev/sdb
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0x0c9c3c75 で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ):
コマンド (m でヘルプ): p

ディスク /dev/sdb: 1000.2 GB, 1000204886016 バイト
ヘッド 255, セクタ 63, シリンダ 121601
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x0c9c3c75

デバイス ブート      始点        終点     ブロック   Id  システム

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-121601, 初期値 1): 1
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-121601, 初期値 121601): 121601

コマンド (m でヘルプ):
コマンド (m でヘルプ): p

ディスク /dev/sdb: 1000.2 GB, 1000204886016 バイト
ヘッド 255, セクタ 63, シリンダ 121601
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x0c9c3c75

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               1      121601   976760001   83  Linux
Partition 1 does not start on physical sector boundary.

コマンド (m でヘルプ):
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

物理ボリューム作成

# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

ちなみに以下pv、vg、lv系はpvdisplayみたいな〜display系で確認することができる。

ボリュームグループ作成

# vgcreate vg_new /dev/sdb1
Volume group "vg_new" successfully created

論理ボリューム作成

今回は何も考えず全領域を割りあてる。

# lvcreate -n lv_home -l 100%FREE vg_new
Logical volume "lv_home" created

フォーマットする

# mkfs -t ext4 /dev/vg_new/lv_home
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
61054976 inodes, 244189184 blocks
12209459 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7453 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848

ひとまず/homeを退避

# mkdir /home_bak/
# mv /home/* /home_bak/

元の領域をアンマウント

# umount /home

新領域をマウント

# mount /dev/mapper/vg_new-lv_home /home

退避していた/home内容を移行する

# mv /home_bak/* /home/

起動時にマウントされるようにする

移行後に別窓のターミナルでsshしてみて問題無さそうなら、/etc/fstabに記述して再起動時にマウントされるようにする。

# vi /etc/fstab
#/dev/mapper/vg_old-lv_home /home                   ext4    defaults        1 2 #元々の/homeマウントをコメントアウトしておく
/dev/mapper/vg_new-lv_home /home                   ext4    defaults        1 2

今にして思えば…

共有領域を/home以下ではなく/sambaとか独立したディレクトリに切れば、新規追加したのをそのまま割り当てれば良かったし、SELinux周りの面倒も無かった気がする。

元々の/home以下用の領域をどっかに割り当てようかとも思ったが、とりあえず今は放置。