CentOS Disk増設 データ移行

うちはネットブックにCnetOSを入れて、それをファイルサーバにしています(詳細は過去の日記)。ストレージはむき出しのHDDにSATA→USB変換ケーブルでつないでいます。今回はそのむき出しのHDDを撤去し、代わりに、Baffaloの2.0TBのHDDを繋ぐ作業です。もちろんデータコピーもね。

最近ビックカメラで買ってきたバッファローの HD-LBF2.0TU2。2.0TBです。USB3には非対応。

BUFFALO バッファローツールズ対応 外付けハードディスク 2TB HD-LBF2.0TU2

BUFFALO バッファローツールズ対応 外付けハードディスク 2TB HD-LBF2.0TU2


バージョン確認

[root@aspire ~]# cat /etc/redhat-release
CentOS Linux release 6.0 (Final)
[root@aspire ~]#
[root@aspire ~]# uname -a
Linux aspire 2.6.32-71.29.1.el6.i686 #1 SMP Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux
[root@aspire ~]# rpm -qa | grep ^kernel
kernel-firmware-2.6.32-71.29.1.el6.noarch
kernel-headers-2.6.32-71.29.1.el6.i686
kernel-devel-2.6.32-71.29.1.el6.i686
kernel-2.6.32-71.el6.i686
kernel-devel-2.6.32-71.el6.i686
kernel-2.6.32-71.29.1.el6.i686
[root@aspire ~]#

disk関連

・いま接続されている内蔵ディスクとか、USB HDDを確認する

[root@aspire ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD1600BEVT-2 Rev: 11.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SAMSUNG  Model: HD204UI          Rev: 0003
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: BUFFALO  Model: External HDD     Rev: 0000
  Type:   Direct-Access                    ANSI  SCSI revision: 02
[root@aspire ~]#
[root@aspire ~]#
[root@aspire ~]# fdisk -l

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

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1               1         637     5116671   12  Compaq 診断
/dev/sda2   *         638        4462    30724312+   7  HPFS/NTFS
/dev/sda3            4463       19458   120449002+   f  W95 拡張領域 (LBA)
/dev/sda5            4463       16862    99602968+   7  HPFS/NTFS
/dev/sda6           16863       19393    20321280   83  Linux
/dev/sda7           19393       19458      522240   82  Linux スワップ / Solaris

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

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               1      243201  1953512001   83  Linux

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

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1               1      243201  1953512001   83  Linux
[root@aspire ~]#

こうやったら見やすいかな

[root@aspire ~]# export LANG=C
[root@aspire ~]# fdisk -l | grep "^Disk /dev"
Disk /dev/sda: 160.0 GB, 160041885696 bytes
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes

ファイルシステム作成、マウント

パーティション作成
  # fdisk /dev/sdc
   d で要らないパーティション消し
   n でパーティションを作る
   w で保存
  (ここでは /dev/sdc1 に全容量を指定)

ファイルシステム作成
 # mkfs -t ext4 /dev/sdc1
  (2TBなんで結構時間かかった)

・マウント
 # mount -t ext4 /dev/sdc1 /mnt
   (ためしにマウントしてみる。viとかでwriteできることを確認)
   (df -h で想定通りの容量で見えてるか確認)

・ラベル作成(USB抜き差しすると /dev/sdXXXの順序が変わるかもしれないから)
  # e2label /dev/sdc1
   (ラベルがすでについてるか確認)
 # e2label /dev/sdc1 bf2tb
   (バッファローの2TBという意味で 「bf2tb」というラベルをつけた)

・マウント
 # umount /mnt
 # umount /data
  (すでにマウントしているようならumountする)
 # mount -L label=bf2tb /data
 # df -h

・fstab編集
 # cat /etc/fstab
 # vi /etc/fstab

例:

#
# /etc/fstab
# Created by anaconda on Thu Dec  1 21:47:41 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=addeb5a8-116a-49a9-8e81-9fbad5819f54 /                       ext4    defaults        1 1
UUID=aea1fe41-449d-4c7e-97d3-0782fcaeb73b swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
#/dev/sdb1              /data                   ext4    defaults        0 0
LABEL=bf2tb             /data                   ext4    defaults        0 0

データ以降

ほんとは、dumpとか使ったほうが速いんでしょうが、ext4はデフォルトのdump/ restoreで対応していなさそうだったので、おとなしくcpコマンドで・・・

・/dataから/mntへコピー
 # cp -pr /data/* /mnt/ &
  (& をつけていると、操作しているTeratermをまちがって終了させてしまってもバックグラウンドで実行してくれる)
  (USBー>USB なので遅い。1分で1GBくらい転送するスピード。簡単な試算で16時間かかる。。)

・コピー状況を確認(df -hで1分おきに確認)

[root@aspire ~]# while :
> do
> date
> df -h
> echo ""
> sleep 60
> done
Mon Jul 23 08:38:05 JST 2012
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6              20G  3.7G   15G  21% /
tmpfs                 751M   88K  751M   1% /dev/shm
/dev/sdb1             1.8T  1.1T  679G  62% /data
/dev/sdc1             1.8T  893G  849G  52% /mnt

Mon Jul 23 08:39:05 JST 2012
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6              20G  3.7G   15G  21% /
tmpfs                 751M   88K  751M   1% /dev/shm
/dev/sdb1             1.8T  1.1T  679G  62% /data
/dev/sdc1             1.8T  894G  848G  52% /mnt

Mon Jul 23 08:40:05 JST 2012
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6              20G  3.7G   15G  21% /
tmpfs                 751M   88K  751M   1% /dev/shm
/dev/sdb1             1.8T  1.1T  679G  62% /data
/dev/sdc1             1.8T  895G  847G  52% /mnt

1分間で1GB転送されてます。

・コピー状況を確認(iostatで10秒おきに確認)

[root@aspire ~]# iostat -mx 10
Linux 2.6.32-71.29.1.el6.i686 (aspire)  07/23/12        _i686_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.05    0.00    0.24    0.39    0.00   99.32

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.01     0.21    0.04    0.07     0.00     0.00    39.22     0.00   32.79  17.83   0.21
sdb               0.00     5.23    1.74    0.20     0.11     0.02   135.74     0.11   56.30   3.06   0.59
sdc               0.00    24.98    0.00    0.79     0.00     0.09   238.64     0.13  159.53   5.47   0.43

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.10    0.00   19.78   55.43    0.00   24.70

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.60    0.10    0.40     0.00     0.00    19.20     0.04   73.40  73.40   3.67
sdb               0.00     0.00  318.80    0.00    19.91     0.00   127.91     3.54   11.12   3.08  98.05
sdc               0.00  4728.90    0.10  165.80     0.00    19.34   238.69   116.54  714.25   5.50  91.29

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.05    0.00   19.91   57.22    0.00   22.82

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.10  316.00    0.20    19.75     0.00   127.93     3.59   11.37   3.08  97.25
sdc               0.00  4994.40    0.00  174.30     0.00    20.28   238.30   122.72  692.76   5.48  95.52

wMB/s :20とでてるので、毎秒20MBくらい転送しているのでしょう。1分1GBであってそうです。

その他のコマンド

・アンマウント
 # umoount /mnt

・なんかビジーです、umountできません、みたいになるときは、
 # fuser -va /mnt
# kill -9 XXX (プロセスID)
  or
 # fuser -km /mnt

・それでもダメな時の最終手段。強制umount
 # umount -l /mnt



ってなところでしょうか。なんかあれば適当に追記予定。