レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

U14

HDD から 容量の小さい SSD へディスクの入れ替えを行ってみた

2015年10月22日 2015年12月5日
SDSSDA-120G

[ 画像提供元 : Amazon ]



SSDも最近は安くなりました。上記は、120GBで5,000円そこそこと、かなりリーズナブルな価格となっていて、自分にも手が届くようになってきました。 そこで、個人的に使用していた Ubuntuのデスクトップを HDD(500GB) からSSD(120GB) へ交換することにしました。

このサイトでも、以下のように今までにディスク交換の記事をいくつか書きました。
ただ、いずれも容量が小さいものから同じかそれ以上の容量へのディスク交換手順になります。 今回は、ディスク容量が大きいHDDから小さいSSDへのディスク交換になりますから、これらの記事を参考にできません。


 ディスク交換手順記事一覧 


 fdiskコマンド編 

LVMを使用したディスク追加手順は、ディスクの追加手順をまとめてみた(LVM編) です。

LVMを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(LVMパーティション&fdiskによるパーティション拡張編) です。

通常ディスクを使用したディスク追加手順は、ディスクの追加手順をまとめてみた(通常ディスク編) です。

通常ディスクを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパーティション拡張編) です。


 partedコマンド編 

パーティションテーブルを MBR(msdos)からGPTへ移行する手順は、2TiB超えパーティションのためのMBR(msdos)からGPTへの移行 です。

LVMを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(LVMパーティション&partedによるパーティション拡張編) です。

通常ディスクを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(通常パーティション&partedによるパーティション拡張編) です。

fdisk コマンドは、古くから利用されているコマンドで、2TiB以上の大きなパーティションを作成することはできません。 その場合は、parted コマンドを使用することになります。

ネット上にも様々な同様の記事がありますが、これらのほとんど記事が、やっぱり、ディスク容量が同じか あるいは 大きいことを前提に解説されています。
今回は、古いHDDからSSDへの切り替え時など発生する 容量が大きいディスクから小さいディスクへのディスク交換手順を簡単に解説してみたいと思います。

探せば、ネット上でも、容量の小さいディスクへの交換手順の解説記事があります。 ただ、その手順の多くは、元のディスクである容量の大きなディスク(パーティション、ファイルシステム)を交換するディスク容量まで小さくして、 一般的なディスク交換手順と同じようにできる・・・という手順解説が多いようです。

この手順で最もリスクが高いのは、元ディスクのパーティションのリサイズ、あるいは、再構築(削除して再作成)することです。

そもそも、パーティションのリサイズは、サイズアップが基本的に考えられており、サイズダウンには、対応できていない場合もあります。 もし、このパーティションの再構築で失敗したら、このディスクが二度と情報を読み出すことができなくなることもあります。


ここでは、元ディスクのパーティションに手を加えることなくそれらのリスクを回避し、ディスクの入れ替えを行ってみます。 ( ここでのファイルシステムは、ext4 について記載しています。 また、この記事は、http://askubuntu.com/questions/40372/how-to-move-ubuntu-to-an-ssd を参考に、自分で確認したものです。 )

準備するもの

ここでは、あくまで例として 20GBの元ディスク(HDD)を10GBの交換用ディスク(SSD)へ入れ替えてみます。 (実環境での容量は、2015.10 現在では この10倍程度でしょうかね、 参照されている時期によっても現実的な数値は、変わりますので、ここではわかりやすいように 少ない数値で解説しています。)

これを前提に以下のものを準備します。

  • 新しいSSD(ディスク) : ここでは 例として 10GのSSDとしています。
  • Ubuntu Live CD(DVD) or USB : ここでは、Ubuntu Live DVD としています。

前準備 : 古いディスクの移行準備を行う

ここで行いたいことは、以下の2点です。

  • 古いディスクの容量を新しいディスクに合わせる。
  • 古いディスクのswap を削除する。

交換するディスク状態とメモリ状態を確認する

まずは、交換するディスク状態とメモリ状態を確認しておきます。

# 現在のディスクのパーティションを確認しておきます。
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 21.5 GB, 21474836480 bytes
ヘッド 255, セクタ 63, シリンダ 2610, 合計 41943040 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00047bd3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048    39845887    19921920   83  Linux
/dev/sda2        39847934    41940991     1046529    5  拡張領域
/dev/sda5        39847936    41940991     1046528   82  Linux スワップ / Solaris

# 現在のディスクの使用量を確認しておきます。
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        19G  4.5G   14G  26% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            488M  4.0K  488M   1% /dev
tmpfs           101M  1.1M  100M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            501M   76K  501M   1% /run/shm
none            100M   24K  100M   1% /run/user

# 現在のメモリとswapの使用量を確認しておきます。
$ free
             total       used       free     shared    buffers     cached
Mem:       1025956     609668     416288       2720      43196     338700
-/+ buffers/cache:     227772     798184
Swap:      1046524          0    1046524

上記の例では、基本領域の後にスワップ領域があります。 これを削除しておきます。


交換するディスクの容量を新しいディスクに合わせる

上記の例では、df コマンドにて、使用量が 4.5G となっているので、 移行先の 10G の容量を考えれば、特段、容量を意識することはなさそうです。

もし、使用量が 多い場合は、移行先の 10G の容量の 約8割程度までディスク使用量を抑えるように 他のディスクへ移動させましょう。

やり方は、色々あると思います。シンボリックリンクでディレクトリを飛ばしてしまうのも1つの方法ですし、 増設ディスクに新たにパーティションを作成し、そこへ移動させても良いでしょう。

ここでは、詳細解説しませんが、必要なのは、移行するディスク容量内に交換するディスクの使用量を抑えることですので、 その点に注意をはらい作業を行ってください。


古いディスクのswap を削除する

swap の使用を停止します。

$ swapoff /dev/sda5

free コマンドで確認しておきます。

$ free
             total       used       free     shared    buffers     cached
Mem:       1025956     762700     263256       2840      92568     434804
-/+ buffers/cache:     235328     790628
Swap:            0          0          0

fdisk コマンドで swap 領域を削除します。

$ sudo fdisk /dev/sda

# p コマンドで一覧出力します。
コマンド (m でヘルプ): preturn

Disk /dev/sda: 21.5 GB, 21474836480 bytes
ヘッド 255, セクタ 63, シリンダ 2610, 合計 41943040 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00047bd3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048    39845887    19921920   83  Linux
/dev/sda2        39847934    41940991     1046529    5  拡張領域
/dev/sda5        39847936    41940991     1046528   82  Linux スワップ / Solaris

# d コマンドでパーティションの削除を行います。
# ここでは、スワップ領域である パーティション 5 および 2 を削除します。
コマンド (m でヘルプ): dreturn
パーティション番号 (1-5): 5return

コマンド (m でヘルプ): dreturn
パーティション番号 (1-5): 2return

# p コマンドで 再度 一覧出力します。
コマンド (m でヘルプ): preturn

Disk /dev/sda: 21.5 GB, 21474836480 bytes
ヘッド 255, セクタ 63, シリンダ 2610, 合計 41943040 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00047bd3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048    39845887    19921920   83  Linux

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

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

警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。新しいテーブルは
次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
使えるようになるでしょう
ディスクを同期しています。

この設定が有効になるのは、再起動した後になります。


ここまでの作業を終えたら、一度、再起動してみましょう。

再起動しても動作に支障がないことを確認しておきます。
もし、ディスク交換で何らかの不具合が発生した際は、このディスクを使用すれば、もとに戻せるようにしておきます。


交換手順(1) : 新しいディスクへ古いディスク内容をコピーする

ここで行いたいことは、以下の3点です。

  • 新しいディスクの取り付けを行う。
  • 新しいディスクにパーティション作成する。
  • 古いディスクの全ファイルを新しいディスクへコピーする。

電源断状態で、新しいディスクを取り付ける

まずは、電源断します。

$ poweroff
...
poweroffコマンドは、shutdown -h now とほぼ同じ動作をします。 shutdownコマンドに慣れている方は、そちらでもOKです。

電源断したら、交換する新しいディスクを取り付けます。 ただし、古いディスクから新しいディスクへ中身をコピーするまで、古いディスクも装着したままとします。


Ubuntu を Live CD(DVD) or USB で起動する

新しいディスクの取り付けを終えたら、電源投入ですが、ここでは、Live CD(DVD) or USB を使用します。

ディスクの入れ替え等々ストレージのメンテナンスは、通常のシステム状態で行うことはありません。 一般的に、シングル(ユーザ)モードやレスキューモード(リカバリモード)などで作業を行うことが求められます。
ここでは、後の作業で GRUBのインストールもありますので、Live CD(DVD) or USB を使用して作業を行うこととします。 (ここでは、Ubuntu 14.04 のLive DVD を使用したもので解説します。 )

DVD ドライブ に Live DVD を挿入します。

先に前もって準備していた Ubuntu Live DVD をDVD ドライブにセットします。


電源投入とともにBIOSの設定を確認しておきます。

DVDドライブからのブートを優先順位として1位にしておきます。
BIOSの設定は、各マザーボードによって異なりますので、各マニュアルなどを参照し確認しましょう。
確認を終えたら、再起動し Ubuntu を起動します。


シェル(ターミナル)を起動します。

まず、以下のように Ubuntu Live の選択画面が表示されます。

Ubuntu Live

ここでは、左の言語選択にて 日本語を選択し、Ubuntu を試す をクリックします。

以下の初期画面が表示されます。

Ubuntu Live

続けて、以下の番号順にクリックすることで シェル(ターミナル)を起動します。

Ubuntu Live

Ubuntu Live

Ubuntu Live


ディスクを確認する

Ubuntuが起動できたら、まずは、ディスクが認識できているか確認します。

$ dmesg|grep sd
[    5.149075] sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
...
[    5.470068] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
...

新しいディスクにパーティションを作成する

パーティションを作成する

次にコピー先となる新しいディスクにパーティションを作成します。

$ sudo fdisk /dev/sdb

# まずは、現状を確認しておきます。
Command (m for help): preturn

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x82b388f8

   Device Boot      Start         End      Blocks   Id  System

# パーティションを作成します。
Command (m for help): nreturn
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
# primaryパーティションを作成します。
Select (default p): preturn
# primary番号は 1 とします。
Partition number (1-4, default 1): 1return
# サイズは、全領域とします。(デフォルトのままEnter押下となります)
First sector (2048-20971519, default 2048): return
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): return
Using default value 20971519

# パーティションを再確認します。
Command (m for help): preturn

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x82b388f8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20971519    10484736   83  Linux

# パーティションテーブルに書き込みます。
Command (m for help): wreturn
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

ファイルシステムを作成する

パーティションが作成できたら ext4 にて ファイルシステム を作成しておきます。

$ sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 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

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

ディスクをコピーする

新しいディスクのパーティションの作成ができたら、そのパーティションへ古いディスクの全ファイルをコピーします。

# 古いディスクを /media/hdd に mount する。
$ sudo mkdir /media/hdd
$ sudo mount /dev/sda1 /media/hdd

# 新しいディスクを /media/ssd に mount する。
$ sudo mkdir /media/ssd
$ sudo mount /dev/sdb1 /media/ssd

# 古いディスクから新しいディスクへ全ファイルをコピーする。
$ sudo cp -ax /media/hdd/*  /media/ssd/.
当たり前ですが、cp コマンドは、コピーする量でかなり時間が係ります。 100GぐらいをSSDへコピーした実績として、約30分くらいかかりました。 のんびり待ちましょう。

交換手順(2) : 新しいディスクへ GRUB をインストールする

ここで行いたいことは、以下の3点です。

  • 古いディスクを取り外す。
  • 新しいディスクにGRUBをインストールする。

電源断状態で、古いディスクを取り外す

まずは、電源断します。

# ディスクコピーを終えたら、電源断します。
$ poweroff
...

電源断したら、古いディスクを取り外します。
また、先に接続した新しいディスクのSATA接続先を取り外した古いディスクのそれに差し替えます。


Ubuntu を Live CD(DVD) or USB で起動する

ここの起動は、先の Ubuntu を Live CD(DVD) or USB で起動する を参照してください。


ディスクを確認する

Ubuntuが起動できたら、まずは、ディスクが認識できているか確認します。
ここでの例では、新しいディスクが sda になっていると思います。

$ dmesg|grep sd
[    6.502293] sd 3:0:0:0: [sda] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
...

GRUBをインストールする

新しいディスクへGRUBをインストールする

# 新しいディスクを /media/ssd に mount する。
$ sudo mkdir /media/ssd
$ sudo mount /dev/sda1 /media/ssd

# スーパーユーザでシェルを起動する。
$ sudo -s

# sys dev proc を mount する。
$ for f in sys dev proc; do mount --bind /$f /media/ssd/$f ; done

# /media/ssd を root ディレクトリとする。
$ chroot /media/ssd

# GRUBをインストールする
$ grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

$ update-grub
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
  No volume groups found
done

# シェルを抜ける。
$ exit
exit

$ 

boot-repair を使ってGRUB を設定する

続けて GRUBの設定ですが、ここでは、便利なツール で boot-repair というものがあります。 これを使うとボタン一つで、GRUB の設定を行ってくれます。

では、早速、boot-repair をインストールし、起動してみましょう。

boot-repair は、GRUBの設定を修復してくれるものです。
特に必要がない場合もありますので、一度、再起動されてみるのも良いかもしれません。
# ppa リポジトリを登録する。
$ sudo add-apt-repository ppa:yannubuntu/boot-repair
You are about to add the following PPA to your system:
 Simple tool to repair frequent boot problems.

Website: https://sourceforge.net/p/boot-repair/home
 More info: https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair
Press [ENTER] to continue or ctrl-c to cancel adding it

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.eSxQrBDnAs --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 60D8DA0B
gpg: requesting key 60D8DA0B from hkp server keyserver.ubuntu.com
gpg: key 60D8DA0B: public key "Launchpad PPA for YannUbuntu" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

# リポジトリを更新する。
$ sudo apt-get update
Ign cdrom://Linux Mint 17 _Qiana_ - Release i386 20140624 trusty InRelease
...


# boot-repairをインストールし、起動する。
$ sudo apt-get install -y boot-repair && boot-repair
Reading package lists... Done
...

処理を終えたら、以下のような画面が起動するはずです。

Ubuntu Live

Recommended Repair をクリックすると、自動でGRUBの設定を修復してくれます。

pastebinit をインストールするかの確認メッセージが表示されることがあります。
ここでは、Yesで処理を継続します。

最後に再起動してディスクを確認

システム再起動後、正しくディスクの交換および容量変更ができたか確認してみましょう。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  4.5G  4.8G  48% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            488M   12K  488M   1% /dev
tmpfs           101M  1.0M  100M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            501M   76K  501M   1% /run/shm
none            100M   20K  100M   1% /run/user

$ free
             total       used       free     shared    buffers     cached
Mem:       1025956     609848     416108       2428      43264     341216
-/+ buffers/cache:     225368     800588
Swap:            0          0          0

ルートディレクトリ( /dev/sda1 ) の容量が 約10G となり、スワップ領域( Swap total )が 0 となっていますね。


(おまけ)SSD の寿命?を延ばす設定

SSD は、基本的に読み書きをすればするほど劣化する?と言われています。 これは、フラッシュメモリの特性で、同一セルを書き換えを寿命回数まで行うと、 セル自体が劣化してやがて電子を保持できなくなり、データの保持ができなくなります。 (出典 : https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA)

つまりは、書き込み回数に限界があるということです。 (厳密には、時間による寿命もあります。長期間書き換えがないと自然放電が起き、データが消去されます。)
一般的には、

SLC(Single Level Cell)タイプであれば、10万回程度
MLC(Multiple Level Cell)タイプであれば、1万回程度
TLC(Triple Level Cell)タイプであれば、5,000回程度

と言われています。 (最近では、さらに低下していると言われています。 TBW(TeraBytes Written : 書き込みができる総容量)で 80TB 以上が一般的なので、ざっと 500回程度が 補償される範囲で実運用では、その10倍程度が限界?) 一般的に廉価版は後者になります。 (最近では、SLCはほぼ見かけないのでMLCと思って間違いないかも・・です。 ただ、まだ多くはありませんが、TLCも出てきていますので要確認でしょう。)

また、キャッシュの有無も寿命に影響するといわれています。(キャッシュがあれば、書き込み回数を抑えられるからです。)

これらのことから、単純に SSDの寿命を延ばすには、書き込み回数を減らすことです。
そのための施策が以下のようなものになります。

swap を使用しない

これは、ここでの交換手順にも入れていますが、あくまで、メモリが十分にある場合です。 メモリが少ない場合は、システムが不安定になることもありますので、十分注意しましょう。
また、仮にswap を使用しなければならない場合であっても SSD の領域でなく、増設などのHDDの領域にswap パーティションを作成するようにしましょう。 これによって、SSDの延命はできるかもしれませんが、パフォーマンス的には落ちてしまうことは、十分、考慮の上、作業をされることをおすすめします。

また、swap の使用頻度を最小限にするように以下の設定を行ってみるのも良いと思います。

$ vim /etc/sysctl.conf
...
# 以下の1行を追加する
vm.swappiness = 0

Windowsでいうところの ページングで、Windowsでは、これを無効化すると同等の効果を得るでしょう。


ディスクバッファキャッシュの書き込み間隔を長くする

ディスクバッファキャッシュは、ある一定の間隔でディスクへ書き込むことで解放されます。 ここでは、その間隔を長くすることでディスクへの書き込み回数を減らす?というものです。

# 現在の設定を確認しておく。
$ sysctl vm.dirty_writeback_centisecs
vm.dirty_writeback_centisecs = 500

$ vim /etc/sysctl.conf
...
# 以下の1行を追加する
vm.dirty_writeback_centisecs = 1500

# sysctl.confの書き込みを終えたら反映する
$ sysctl -p

# 現在の設定を確認しておく。
$ sysctl vm.dirty_writeback_centisecs
vm.dirty_writeback_centisecs = 1500

デフォルトでは 5 秒間隔になっているところを 15 秒間隔に変更しています。

一応、メモリに一定時間あるデータの中で以下の指定時間を超えたものは ディスクへ書き込む(先の dirty_writeback_centisecs の間隔で起動される pdflushデーモンが書き込む)ことになっていますから、 これも、少し伸ばしておきます。

# 現在の設定を確認しておく。
$ sysctl vm.dirty_expire_centisecs
vm.dirty_expire_centisecs = 3000

$ vim /etc/sysctl.conf
...
# 以下の1行を追加する
vm.dirty_expire_centisecs = 4500

# sysctl.confの書き込みを終えたら反映する
$ sysctl -p

# 現在の設定を確認しておく。
$ sysctl vm.dirty_expire_centisecs
vm.dirty_expire_centisecs = 4500

ただ、これって書き込み回数が減るの?
正直、これで、どれだけの効果があるのかは疑問?です。 頻繁にアクセスしないのは確かですが、ここでの目的は同じセルに対して書き込み回数を減らすことなので、 この設定で果たして減るのかな?と思わなくもないです。(通常のHDDならシーク回数などを減らすことは十分に考えられますが・・・)


ファイル一覧データベースの更新頻度を行なう頻度を少なく

mlocate によって ファイル一覧データベース(/var/lib/mlocate/mlocate.db) が更新されますが、 この更新する量が多いので、できる限り更新回数を減らすようにしておきます。 ただ、この頻度を減らすとファイル検索で、新しいファイルの検索ができない場合などのデメリットもありますので、十分、注意が必要です。

# mlocate のcronを日ごとから週ごとへ移動する
$ mv /etc/cron.daily/mlocate /etc/cron.weekly/.

Windowsでいうところの ファイル インデックス で、Windowsでは、これを無効化すると同等の効果を得るでしょう。


/tmp ディレクトリをメモリへ追い出す

/tmp ディレクトリは、Linuxにおいては、文字通り一時領域であって、システムリブートにて消去されます。 そこで、ディスク上にある必要性もないので、メモリへ割り当てます。 (あくまで、メモリに余裕がある場合です。メモリに余裕がない場合は、別ディスクなどへ移行されることをおすすめします。)

# /tmp をメモリへ割り当てるには、 /etc/fstab を編集します。
$ vim /etc/fstab 
...
tmpfs /tmp tmpfs defaults,size=512m 0 0

ここでは、512M を割り当てていますが、環境によって変更されると良いよ思います。


atime 更新を止める

各ファイルの最終アクセス日時(atime) の更新を止めることで、ファイルのアクセス毎に更新していた書き込み情報が無くなります。 これにより、更新回数が減るということです。 しかし、atime をもとにファイルの存在意義を確認しているツールなどもあり、 必ずしも停止してよいものかは疑問が残るところです。 ここでは、他のサイトでも紹介されている内容を以下に記載しておきますが、先の理由から、初心者の方には、おすすめしませんのであらかじめご了解ください。

# 最終アクセス日時(atime) の更新を止めるには、 /etc/fstab の止めたいファイルシステムに対して noatime を指定します。
$ vim /etc/fstab 
...
UUID=e8994941-5efd-4cdb-bb03-a7335be6affc /               ext4    noatime,errors=remount-ro 0       1

この設定内容は、システムの再起動時に有効になります。


その他

ここまでに解説したもの以外にも以下のような対策があります。 自身の環境によって取り入れた方が良い場合は、設定しておきましょう。

  • /var/log を別ディスクへ移動する (随時 書き込まれるログ情報を移動することになります)
  • /home を別ディスクへ移動する (ブラウザキャッシュなどの一時領域を移動することになります)
  • ハイバネーションを利用している場合、使用しないように設定する
  • デフラグを利用しないように設定する(Windowsのみ)

(おまけ)trimが有効になっているか確認(パフォーマンス向上)

(この設定は、寿命を延ばすわけではありません。)
trimは、削除されたファイルおよびディレクトリの領域の初期化を行うコマンドです。 一般にファイルを削除しただけでは、ファイルの領域が初期されることはありません。 ある一定の間隔で、trimコマンドを実行することで、削除された領域の初期化を行うことで、次回、書き込み処理の効率化を図ることができるというものです。

Ubuntu 14 では、trimは有効になっています。

# fstrim が cron に登録されていることを確認します。
$ ls /etc/cron.weekly/
...
fstrim
...

この cron は、fstrim-all を起動しているだけです。 手動でも、自前で一定間隔でfstrim-all を起動しても同じような効果を得られるでしょう。
あるいは、 /etc/fstab のオプションで “discard” を指定することでも同様の結果を得ることができるでしょう。



いかがだったでしょうか?
容量が小さいディスクへのコピーには、dd コマンドが使えないので cp コマンドで実施する方法です。 そのため、grubをインストールする必要がありますが、こちらがパーティションを再構築するより安全かと思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

DeabinのLive USB を作成する

今回は、Live CD ならぬ Live USB を作成してみたいと思います。 Live USBをWindows上で作成できる作成ツー ...

Windows で Linux ファイルシステム LVM + Ext4 のディスクをマウントするには?

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

2TiB超えパーティションのためのMBR(msdos)からGPTへの移行

一昔前では、ディスクを管理するレコードは、PC/AT互換機(いわゆるIBM PC互換機)で用いられた MBR(Master Boot Rec ...

VMWareでハードディスク増設

VMWareでいろんなアプリをインストールすると、ディスク不足に陥ることが良くあります。 そんな時は、仮想ディスクの増設を行う必要があります。 ...

Debian(Ubuntu)で boot log を有効にする

今回は、 Debian(Ubuntu)で boot log を有効にする方法を簡単に解説します。 と言っても/etc/default/boo ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2468 [s]