ページ

2014年6月22日日曜日

Intel D510MOにCentOS6.5をインストール その2


Intel D510MOにCentOS6.5をインストール

その2   ~ ファイルシステム拡張編 ~



ちょっと古めの省電力ボード、Intel D510MOにCentOS6.5をインストールしてみました。

その2です。
その1はこちら

前回は実機にソフトウェアRAIDでCentOS6.5をインストールしています。
今回はそのメンテナンスをしないといけません。

具体的にいうと今までの流れは、

  • 今までは2TB×2でRAID1、FreeNAS7.x でファイルサーバ
  • FreeNASの片側を取り外し、フォーマットしてNTFSとして外付けHDDに
  • FreeNASから外付けHDDにデータ退避
  • 外付けHDDのデータが通常通り使用できることを確認してから、FreeNASを壊す
  • 2TBが1本とどっかから引っ張ってきた300GB1本で、とりあえずCentOS6.5をインストール


でした。
簡単にCentOS6.5をRAID1でインストールするために300GBをくっつけたわけですが、インストール完了したらもう不要です。

ってことで300GBHDDを取り外します。
取り外しの手順と、データ戻しまでの手順は以下の通り。

  1. ソフトウェアRAIDの現状を確認する
  2. RAIDメンバからディスクを取り出す
  3. アレイサイズ、LVM、ファイルシステムを拡張する




1. ソフトウェアRAIDの現状を確認する


ソフトウェアRAIDを管理するコマンドはmdadmです。
でそのmdadmが現状を記録しているのは


[root@centos ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
      524224 blocks super 1.0 [2/2] [UU]         md0 は sdb1 と sda1

md1 : active raid1 sdb2[1] sda2[0]

      292399936 blocks super 1.1 [2/2] [UU]      md1 は sdb2 と sda2
      bitmap: 0/3 pages [0KB], 65536KB chunk

unused devices: <none>



です。

「RAID1」で、デバイス「md0」「md1」があり、それぞれディスク「sda」「sdb」からパーティションを切り出してRAID1になっているのがわかります。


ではディスク「sda」「sdb」の詳細を確認します。


[root@centos ~]# /sbin/fdisk -l /dev/sda         sdaの詳細を出力

ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト   2TBのディスクで
ヘッド 255, セクタ 63, シリンダ 243201
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト     AFTなディスクのよう
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x000a1843

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

/dev/sda1   *           1          66      524288   fd  Linux raid 自動検出
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              66      243202  1952989184   fd  Linux raid 自動検出


「パーティション 1 は、シリンダ境界で終わっていません。」は誤表示のようです

詳細を確認するため、partedツールをインストールします。


[root@centos ~]# yum -y install parted


詳細を確認します。


[root@centos ~]# parted
GNU Parted 2.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) select /dev/sda
/dev/sda を使用
(parted) unit s
(parted) p
モデル: ATA WDC WD20EARX-00P (scsi)
ディスク /dev/sda: 3907029168s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos

番号  開始      終了         サイズ        タイプ    ファイルシステム  フラグ

 1   2048s     1050623s     1048576s     primary  ext4            boot, raid
 2   1050624s  3907028991s  3905978368s  primary                  raid

   パーティションの開始セクタがそれぞれ8の倍数で、たまたまですが1024でも割り切れます
      ちなみにWindows7以降はこの2048セクタ(第一セクタ目)が標準のようです


セクター表示で割り切れているのでOKでしょう。
「unit b 」でバイト表示して、セクタサイズの4096で割ってみても割り切れるはず。
同じようにして「sdb」も確認しておきます。


物理ディスクに関してこの程度にしておいて、LVMとRAIDを見てみます。


[root@centos ~]# df -l
Filesystem                1K-blocks  Used   Available   Use% Mounted on
/dev/mapper/vg_1-LogVol01 279552016  826328 264525268   1%    /
tmpfs                     1952716    0      1952716     0%    /dev/shm
/dev/md0                  507684     32664  448809      7%    /boot


デバイス「md0」はそのまま /boot に割り当てられてますね。512MBは多かったような。
論理ボリューム「vg_1-LogVol01」はLVMですね。LVを調べてみると、


[root@centos ~]# lvdisplay
  --- Logical volume ---
  LV Path                    /dev/vg_1/LogVol01
  LV Name                    LogVol01
  VG Name                    vg_1
  LV UUID                    5ZdCIq-3lTK-AgTM-K84p-NLB2-Ac0n-cvvieS
  LV Write Access            read/write
  LV Creation host, time centos, 2014-06-10 00:18:26 +0900
  LV Status                  available
  # open                     1
  LV Size                    270.85 GiB
  Current LE                 69338
  Segments                   1
  Allocation                 inherit
  Read ahead sectors         auto
  - currently set to         256
  Block device               253:0
   CentOSのインストール先です

  --- Logical volume ---

  LV Path                    /dev/vg_1/LogVol00
  LV Name                    LogVol00
  VG Name                    vg_1
  LV UUID                    rGKu59-lITZ-UOg3-h1pk-gC6K-kivb-04ZCcA
  LV Write Access            read/write
  LV Creation host, time centos, 2014-06-10 00:20:01 +0900
  LV Status                  available
  # open                     1
  LV Size                    8.00 GiB
  Current LE                 2048
  Segments                   1
  Allocation                 inherit
  Read ahead sectors         auto
  - currently set to         256
  Block device               253:1
   こっちは8GBのスワップパーティションです


ここまでは確認です。



2. RAIDメンバからディスクを取り出す


コマンド「cat /proc/mdstat」、「fdisk -l」で見て分かるように2TBのディスクと300GBのディスクでRAIDを組んでいます。パーティション情報を間違えないようにしつつ、300GB側を取り外します。

まずは --fail コマンドでフェイル状態にします。


[root@centos ~]# mdadm --manage /dev/md1  --fail /dev/sdb2
   failさせて
mdadm: set /dev/sdb2 faulty in /dev/md1

[root@centos ~]# cat /proc/mdstat
   確認
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
      524224 blocks super 1.0 [2/2] [UU]

md1 : active raid1 sdb2[1](F) sda2[0]

      292399936 blocks super 1.1 [2/1] [U_]
      bitmap: 2/3 pages [8KB], 65536KB chunk

unused devices: <none>



同様にmd0側もフェイル状態にすると、


[root@centos ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1](F) sda1[0]
      524224 blocks super 1.0 [2/1] [U_]

md1 : active raid1 sdb2[1](F) sda2[0]

      292399936 blocks super 1.1 [2/1] [U_]
      bitmap: 2/3 pages [8KB], 65536KB chunk

unused devices: <none>



sdb側がフェイル状態ですね。
これでRAIDメンバから取り外せます。取り外しは「remove」です。


[root@centos ~]# mdadm --manage /dev/md1  --remove /dev/sdb2
   removeさせて
mdadm: hot removed /dev/sdb2 from /dev/md1

[root@centos ~]# mdadm --manage /dev/md0  --remove /dev/sdb1
   もう一方もremove
mdadm: hot removed /dev/sdb1 from /dev/md0

[root@centos ~]# cat /proc/mdstat
   確認
Personalities : [raid1]
md0 : active raid1 sda1[0]
      524224 blocks super 1.0 [2/1] [U_]        ←sdbの表示がない

md1 : active raid1 sda2[0]

      292399936 blocks super 1.1 [2/1] [U_]     sdbの表示がない
      bitmap: 2/3 pages [8KB], 65536KB chunk

unused devices: <none>



OK。
これでRAIDメンバに300GBHDDはいなくなりました。




3. アレイサイズ、LVM、ファイルシステムを拡張する


いよいよ緊張の時です。アレイサイズを拡張します。
拡張コマンドは「mdadm -grow」です。拡張前、拡張実施、拡張後のコマンドは以下。


[root@centos ~]# mdadm -D /dev/md0 | grep -e "Array Size" -e "Device Size"
     Array Size : 524224 (512.02 MiB 536.81 MB)
   いじらない側の md0 は512MBですね

[root@centos ~]# mdadm -D /dev/md1 | grep -e "Array Size" -e "Device Size"

     Array Size : 292399936 (278.85 GiB 299.42 GB)
   拡張したい側のサイズは300GBのHDDに引っ張られて299GBです

[root@centos ~]# mdadm --grow /dev/md1 -z max

mdadm: component size of /dev/md1 has been set to 1952858112K
   今、300GBのHDDはいませんので -z max を指定すると2TB近くまで拡張できました

[root@centos ~]# mdadm -D /dev/md1 | grep -e "Array Size" -e "Device Size"

     Array Size : 1952858112 (1862.39 GiB 1999.73 GB)


OK。


[root@centos ~]# mdadm --detail /dev/md1
/dev/md1:
           Version : 1.1
  Creation Time    : Tue Jun 10 00:18:19 2014
       Raid Level  : raid1
       Array Size  : 1952858112 (1862.39 GiB 1999.73 GB) ←うひょー
  Used Dev Size    : 1952858112 (1862.39 GiB 1999.73 GB) 
    Raid Devices   : 2
   Total Devices   : 1
     Persistence   : Superblock is persistent

   Intent Bitmap   : Internal


    Update Time    : Tue Jun 17 01:27:23 2014

             State : active, degraded
 Active Devices    : 1
Working Devices    : 1
  Failed Devices   : 0
  Spare Devices    : 0

             Name  : centos:1  (local to host centos)

              UUID : d864a2c9:f9f0c30b:28527d49:906cf890
           Events  : 3083

    Number   Major   Minor   RaidDevice State

       0       8        2        0      active sync   /dev/sda2
       1       0        0        1      removed


うひょー。
OK。次はPVを拡張します。


[root@centos ~]# pvscan
  PV /dev/md1   VG vg_1   lvm2 [278.85 GiB / 0    free]
  Total: 1 [278.85 GiB] / in use: 1 [278.85 GiB] / in no VG: 0 [0   ]
   PV はまだ "0 FREE" です

[root@centos ~]# pvs

  PV            VG   Fmt  Attr PSize      PFree
  /dev/md1   vg_1 lvm2 a--  278.85g    0
   ここも一緒

[root@centos ~]# pvresize /dev/md1

  Physical volume "/dev/md1" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
   PVを拡張!


[root@centos ~]# pvs

  PV            VG   Fmt  Attr PSize   PFree
  /dev/md1   vg_1 lvm2 a--  1.82t    1.55t
[root@centos ~]# pvscan
  PV /dev/md1   VG vg_1   lvm2 [1.82 TiB / 1.55 TiB free]
  Total: 1 [1.82 TiB] / in use: 1 [1.82 TiB] / in no VG: 0 [0   ]
   うひょー


うひょー(2回目)。
OK。


[root@centos ~]# vgdisplay
  --- Volume group ---
  VG Name                vg_1
  System ID
  Format                 lvm2
  Metadata Areas         1
  Metadata Sequence  No  7
  VG Access              read/write
  VG Status              resizable
  MAX LV                 0
  Cur LV                 2
  Open LV                2
  Max PV                 0
  Cur PV                 1
  Act PV                 1
  VG Size                1.82 TiB
  PE Size                4.00 MiB
  Total PE               476771
  Alloc PE / Size        71386 / 278.85 GiB
  Free  PE / Size        405385 / 1.55 TiB)   ←ここが 0 じゃなければOK
  VG UUID                ejdwiB-pmxh-ejbq-Dv6s-Wk6c-y7UT-EYhKGj




OKOK。物理ボリュームが拡張されましたので(Free PEが0ではなくなった)ので次は論理ボリュームの操作です。


もし新たにディスクを用意し、物理ボリュームを作成(PVCREATEコマンド)した場合はこのボリュームグループにFree PEができるようにVGEXTENDします。
今は元々あったディスク(物理ボリューム)を拡張したので(# pvresize /dev/md1)、VGEXTENDは不要ですね。


で論理ボリューム拡張はLVEXTENDです。まんまやな。


[root@centos ~]# lvdisplay
   拡張前の確認
  --- Logical volume ---
  LV Path                /dev/vg_1/LogVol01
  LV Name                LogVol01
  VG Name                vg_1
  LV UUID                5ZdCIq-3lTK-AgTM-K84p-NLB2-Ac0n-cvvieS
  LV Write Access        read/write
  LV Creation host, time FileServer-2014, 2014-06-10 00:18:26 +0900
  LV Status              available
  # open                 1
  LV Size                270.85 GiB          ←今は270GB
  Current LE             69338
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0


[root@centos ~]# lvextend -l +100%FREE /dev/vg_1/LogVol01
  Extending logical volume LogVol01 to 1.81 TiB
  Logical volume LogVol01 successfully resized
   いざ拡張!!

[root@centos ~]# lvdisplay
   拡張後の確認
  --- Logical volume ---
  LV Path                /dev/vg_1/LogVol01
  LV Name                LogVol01
  VG Name                vg_1
  LV UUID                5ZdCIq-3lTK-AgTM-K84p-NLB2-Ac0n-cvvieS
  LV Write Access        read/write
  LV Creation host, time FileServer-2014, 2014-06-10 00:18:26 +0900
  LV Status              available
  # open                 1
  LV Size                1.81 TiB          ←うひょー
  Current LE             474723
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0


うひょー(3回目)。
OK。OKOK。最後はファイルシステムを拡張します。

拡張コマンドは resize2fs です。
ただ今回は300GB弱を一気に2TB近くまで拡張しますので時間がかかります。
今までのコマンドはほとんど一瞬で完了しましたが、これはそうもいきません。

なので resize2fs コマンドをバックグラウンドで、なおかつコンソール(SSH)が切断されても実行し続けるように工夫します。

具体的には nohup& を使用します。
nohup はログアウト等のSIGHUPシグナルを無視する、 & はバックグラウンドジョブ実行指定です。


[root@centos ~]# df -Th
   拡張前の確認
Filesystem                Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_1-LogVol01 ext4   267G  808M  253G   1% /
tmpfs                     tmpfs  1.9G     0  1.9G   0% /dev/shm
/dev/md0                  ext4   496M   32M  439M   7% /boot

[root@centos ~]# nohup resize2fs /dev/mapper/vg_1-LogVol01 &
   いざ拡張!!
   この後は3時間くらい?かかるのでexitして、そのまま寝ました。。。

[root@centos ~]# cat /root/nohup.out
   何が起きてたか確認します
   このファイルに本来コンソールにリダイレクトされていたはずのメッセージが書き込まれています
Filesystem at /dev/mapper/vg_1-LogVol01 is mounted on /; on-line resizing required
old desc_blocks = 40, new_desc_blocks = 116
Performing an on-line resize of /dev/mapper/vg_1-LogVol01 to 486116352 (4k) blocks.
The filesystem on /dev/mapper/vg_1-LogVol01 is now 486116352 blocks long.

   お、行けてそうです!

[root@centos ~]# df -Th
   拡張後の確認
Filesystem                Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_1-LogVol01 ext4   1.8T  817M  1.7T   1% /
tmpfs                     tmpfs  1.9G     0  1.9G   0% /dev/shm
/dev/md0                  ext4   496M   32M  439M   7% /boot
   うひょー


うひょー(4回目)。



とまぁ、ここまででインストール作業のハード面は終了です。
新品HDDが余っている人は新品HDDをつなぎこんでアレイリビルドすれば終了。

今は余っている2TBのディスクはありませんのでこのまま片肺運転させます。

次回は

  • Sambaをインストール
  • NTFSな外付けHDDのデータをコピー
  • データ確認が終了次第、このNASのアレイリビルドに使用

です。


0 件のコメント:

コメントを投稿