【STEP-41】ラズパイ最強は、SSD×2枚挿し!!

0
1352

以前の記事【STEP-38】では、「起動ディスクがこれだけランダムアクセスにも強く高速大容量になった今では、シンプルに起動ディスク内のSWAP領域を拡大するのもアリではないでしょうか?」と書きましたが、【STEP-27】では、「起動ドライブとは別のSWAP領域専用のデバイスをマウントすることで、パフォーマンスがアップする可能性があります。」とも書きました。幸い、手元に使ってないSSDがあったので、SSDの”2枚挿し”をやってみることにしました。

追加した2枚目のSSD

・Intel X25-M Mainstream 2.5″ 80GB SATA II MLC + Homefunny SATA-USB 3.0 変換アダプタ

(起動ディスクのSSDと併せて、セルフパワータイプのUSBハブを介してRaspberry Piと接続)

SSDのパーティション再構成

Raspberry PiのUSB端子にSSDを接続すると、「リムーバブルメディアの挿入」画面が現れるので、「OK」ボタンをクリックし、ファイルマネージャを開きます。

ファイルマネージャが開き、接続したSSDのフォルダが開きます。画面上に表示されたフルパスの”/media/pi/”以下が現状のUUIDです。

コマンド”lsblk“で、接続したSSDのデバイスファイル名を確認しておきます。

lsblk

“/media/pi/”にマウントされたSSDのデバイスファイル名は “sdb1”でした。容量は、73.3GBと少なく表示されています。”sr0″はブルーレイドライブ、”zram0″は【STEP-39】で設定したZRAM領域です。

フォーマットする前に、SSDの全てのパーティションをアンマウントしておきます。

umount /dev/sdb1
umount /dev/sdb2
umount /dev/sdb3

何故か、”sdb2″と”sdb3″は既にアンマウント済と返されました。

コマンド“fdisk”の対話モードで、デバイス”sdb”のパーティションを再構成します。

sudo fdisk /dev/sdb

fdiskのプロンプト「Command(m for help):」が表示されたら、fdiskコマンド“d”でSSDのパーティションを一旦、削除します。

d

削除するパーティションを尋ねられるますが、既定通り”3(番目)”でよいので、そのまま何も入力せずに”Enter”キーを押すと、「Partition 3 has been deleted」と表示されます。

プロンプトが返ってきたら、再びfdiskコマンド”d”で次のパーティションを削除します。

d

削除するパーティションを尋ねられるますが、既定通り”2(番目)”でよいので、そのまま”Enter”キーを押すと、「Partition 2 has been deleted」と表示されます。

プロンプトが返ってきたら、続けてfdiskコマンド”d”で次のパーティションを削除します。

d

残りのパーティションはひとつしかないので、自動的に”1(番目)”が選択され、”Enter”キーを押さなくても、「Partition 1 has been deleted」と表示されます。

今度はfdiskコマンド”n”で新しくパーティションを作成します。

n

パーティションタイプを尋ねられますが、既定の”primary”でよいので何も入力せず”Enter”キーを押します。次の”Partition number”も、その次の”First sector”も同じく何も入力せずに”Enter”キーを押します。次の”Last sector”は、SWAP領域のサイズを指定するので”+8G”と入力して”Enter”キーを押します。

+8G

「このパーティションには”ntfs”の署名が含まれます。除去しますか?」と問われるので”y”で返します。

y

プロンプトが返ってきたら、ここでfdiskコマンドp”を使い、パーティションテーブルを確認しておきます。

p

74.5GBの”sdb”の内、最初のパーティションとして”sdb1″がサイズ:8GBで作成されていることが確認できました。

プロンプトが返ってきたら、もう一度、fdiskコマンド”n”で残りのパーティションを作成します。

n

パーティションタイプを尋ねられますが、既定の”primary”でよいので何も入力せず”Enter”キーを押します。次の”Partition number”も、その次の”First sector”も同じく何も入力せずに”Enter”キーを押します。次の”Last sector”も、残りの領域全てを使うので何も入力せずに”Enter”キーを押します。プロントが返ってきたら、もう一度、fdiskコマンド“p”でパーティションテーブルを確認します。

p

74.5GBの”sdb”の内、二つ目のパーティションとして”sdb2″が残りのサイズ:66.5GBで作成されていることが確認できました。こちらのパーティションはバックアップ、ドキュメント、動画などを保存することに利用できます。

最後に、fdiskコマンド”w”でパーティションテーブルの変更を保存してfdiskコマンドを終了します。

w

SSDのフォーマット

コマンド”mkfs“で、SSDのパーティション”sdb1″をフォーマット形式”ext4″でフォーマットします。

sudo mkfs.ext4 /dev/sdb1

続けて、SSDのパーティション”sdb2″をフォーマット形式”ext4″でフォーマットします。

sudo mkfs.ext4 /dev/sdb2

SWAP領域の準備

コマンド”mkswap“で、SSDのパーティション”sdb1″に、ラベル名”ssdswap”として、swap領域を準備します。

sudo mkswap -c -v1 -L ssdswap /dev/sdb1

念の為、コマンド”lsblk“で、コマンド”mkswap“の実行結果を確認しておきます。

lsblk -f

パーティション”sdb1″がラベル名”ssdswap”で、swap領域として準備されていることが確認できました。

新規SWAP領域の起動時自動マウント設定

作成したswap領域がRaspbian起動時に自動的に有効化されるように、マウント設定ファイル”/etc/fstab”に書き込みます。

システムディスク ( microSDカード、SSD等 ) 上にマウントされる既定のswap領域は、swap領域管理サービスの”dphys-swapfile”により実行されています。

ファイルマネージャに戻ってフォルダ”/etc”を開き、“fstab”を右クリックして出てくるメニューから「nano」を選択します。

GNU nano」画面が開いたら、「↓」キーでカーソルを最終行に移動し、この通り入力します。各文字列間は「Tab」キーで送ります。

入力したら「Ctrl」+「O」キーで上書きし、「Enter」→「Ctrl」+「X」キーで画面を閉じます。

LABEL=ssdswap  swap  swap  default  0  0

既定SWAP領域の起動時自動マウント停止

システムディスク ( microSDカード、SSD等 ) 上にマウントされる既定のswap領域は、swap領域管理サービスの”dphys-swapfile”により実行されています。

【STEP-27】でインストールした”insserv“で、Raspbian起動時にSWAP領域管理サービス”dphys-swapfile”が自動実行されるのを止めます。

sudo insserv -r dphys-swapfile

SWAP領域のマウント状況確認

コマンド”swapon -s“で、SWAP領域のマウント状況を確認します。

swapon -s

設定ファイルを編集しても、それが反映されるのは再起動後なので、現状のSWAP領域は【STEP-39】で設定した”zram0″と【STEP-38】で拡大した起動ディスク内の4GBでした。

コマンド”swapon -L”で、SSDのSWAP領域ラベル名”ssdswap”をマウントします。

sudo swapon -L ssdswap

再び、コマンド”swapon -s“で、SWAP領域のマウント状況を確認します。

swapon -s

新しくSSDのパーティション”sdb1″の8GBが、SWAP領域としてマウントされていましたが、優先順位は最下位の”-3″でした。

確認したら、再起動します。

reboot

再起動したら、「LXTerminal」を起動し、もう一度、コマンド”swapon -s“で、SWAP領域のマウント状況を確認します。

swapon -s

起動ディスク内のSWAP領域がなくなり、SSDのパーティション”sdb1″が優先順位”-2″に繰り上がってマウントされていました。

念の為、コマンド”lsblk -f“でも、SWAP領域のマウント状況を確認しておきます。

lsblk -f

こちらでは、SSDのパーティション”sdb1″の”MOUNTPOINT”が”[SWAP]”と表示されていました。

ファイルマネージャを起動して”/media/pi/”を開くと、SWAP領域に設定したパーティションは表示されず、残りのパーティションが設定前とは別のUUIDで表示されていました。

SSD×2枚挿しの効果確認

ブラウザを起動してGoogleマップを開き、ストリートビューを表示してみました。メモリーを82.6%使っていますが、CPUの負荷は【STEP-39】のときから更に減って31.6%です。SWAP領域への退避/読出しが起動ディスクと別のストレージに移動した為、メインの処理と平行に処理されることで、SWAPが8GBの6.4%で524MBも使われるようになりました。その結果、ストリートビューも【STEP-39】のときよりもかなりマシになってきました。