ファイルサーバーとして使用している自宅サーバーをSSDに移行しました。

移行するのは写真や大容量のファイルを保存するため使用していたサーバーです。2008年製のWindows Vista搭載パソコンをサーバーに改造して使っていましたが、もっと起動を速くしたいこと、データベースへのアクセスが遅くNextcloudの同期に時間がかかるため、使っていなかったSSD(Crucial BX500 120GB)に移行します。
- OS:CentOS 7.4
- メモリ:2GB DDR2-800 dual channel
- OS用ストレージ:HDD320GB(2008年製 HITACHI HDP72503 320GB)
→Crucial BX500 120GBに移行します - ストレージ(メイン):WD Blue 4TB
- ストレージ(バックアップ):WD Blue 4TB
あらかじめOSのバックアップは取っておきましょう。また、作業前にデータ用ディスクは取り外しておきます。
ファイルシステムの構成を考える
既存のファイルシステムは以下の通りです。
#parted -l
モデル: ATA Hitachi HDP72503 (scsi)
ディスク /dev/sda: 320GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 31.5GB 31.5GB primary ext4 boot
4 31.5GB 250GB 218GB primary ext4
2 250GB 270GB 20.0GB primary ext4
3 270GB 271GB 1023MB primary linux-swap(v1)
#df -Th
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/sda1 ext4 29G 15G 13G 55% /
devtmpfs devtmpfs 900M 0 900M 0% /dev
tmpfs tmpfs 915M 0 915M 0% /dev/shm
tmpfs tmpfs 915M 9.0M 906M 1% /run
tmpfs tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/sda2 ext4 19G 3.4G 14G 20% /home
/dev/sdc1 ext4 3.6T 2.8T 866G 77% /sambadata
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/sda4 ext4 200G 85G 105G 45% /mnt/sd
tmpfs tmpfs 183M 0 183M 0% /run/user/1001
Linuxを触り始めたばかりの頃に適当に自作したため、めちゃくちゃなパーティション構成になっています。今回のSSD以降を機にもっと拡張性に優れた構成に変更したいと思います。
| # | パーティション | サイズ |
|---|---|---|
| 1 | BIOS Boot Partition | 1MB |
| 2 | /boot | 1GB |
| 3 | / | 残り‐swap分 |
| 4 | swap | 2〜4GB |
上記の表のような構成にすることにしました。既存の構成では/home用のパーティンションを作っていましたが、廃止して/に統合します。swapは必要なさそうでしたが、一応作っておくことにしました。
新しいSSDにパーティションをつくる
SSDを取り付けてサーバーを起動します。誤操作によるデータ損失を防ぐため、データ用など不要なディスクは外しておきましょう。
ディスクのパスを確認します。
lsblk
parted -l
既存のOSディスクが/dev/sda、SSDが/dev/sdbであることが確認できました。
partedでパーティションを操作します。Enterキーを押すごとに変更が反映されていくため注意しましょう。
まず、GPTラベルを付与します。
parted /dev/sdb --script mklabel gpt
次にパーティションを作成します。
parted /dev/sdb
mkpart primary 1MiB 2MiB
set 1 bios_grub on
mkpart primary ext4 2MiB 1026MiB
mkpart primary ext4 1026MiB 110GB
mkpart primary linux-swap 110GB 100%
quit
ファイルシステムを作成します。
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkswap /dev/sdb4
SSDにデータをコピーしていく
マウント先のディレクトリを作成し、SSDをマウントします。
mkdir -p /mnt/newroot
mount /dev/sdb3 /mnt/newroot
mkdir -p /mnt/newroot/boot
mount /dev/sdb2 /mnt/newroot/boot
rsyncでコピーします。
rsync -aHAXv --exclude={"/proc/*","/sys/*","/dev/*","/run/*","/tmp/*","/mnt/*","/media/*","/lost+found"} / /mnt/newroot
fstabの変更
新しいSSDに対して、fstabを変更したりブートローダーをインストールしたりします。
chrootしておきます。
mount --bind /dev /mnt/newroot/dev
mount --bind /proc /mnt/newroot/proc
mount --bind /sys /mnt/newroot/sys
mount --bind /run /mnt/newroot/run
chroot /mnt/newroot /bin/bash
ディスクのUUIDをチェック。
blkid
#SSDのUUIDを確認
/etc/fstabを編集。
vi /etc/fstab
UUID=<UUID_boot> /boot ext4 defaults 1 2
UUID=<UUID_root> / ext4 defaults 1 1
UUID=<UUID_swap> swap swap defaults 0 0
ブートローダ(GRUB2)のインストール
grub2-install /dev/sdb
grub2-mkconfig -o /boot/grub2/grub.cfg
サーバーの再起動
chrootから抜けます。
exit
umount -R /mnt/newroot
サーバーをシャットダウンします。
shutdown -h now
HDDを取り外し、正常に起動することを確認しましょう。
まとめ
無事にSSDへの移行が完了しました。
体感速度は大幅に向上。これまで30秒ほどかかっていた起動時間が10秒ほどに短縮されました。Nextcloudの同期も爆速になり快適です。


コメント