Raspberry pi 3 + USB HDD(6TB)でNASを作る
しばらく間が空いてしまいました。
最近は買い物する度にここでネタにしていますが、今回は自宅用のNASを作ろうという話です。
NASは別に自分で作らなくても、買うことができます。ただ結構お値段がするんですよね。RAIDを組むことができたりする利点はありますし機能に応じて値段も大きく変わるのですが、安くて数万円(HDDは別で)というところじゃないでしょうか。自宅用の軽い用途のものなので、本格的なストレージがほしいわけでもありませんし。Windows PCやRaspiやSurfaceなどいろいろ使うようになるにつれてファイルサーバの必要性が高まってきました。
で、今回もなるべく安く(できればHDDの値段に近いくらいの予算で)、低機能でもいいから…… ということで探しました。
もともと、NASの本体には組み込みのLinuxが入っていたりします。もちろんファイルサーバとしてふさわしいチューニングがされていたりもするのでしょうけど、Raspberry piがあるのですから自分で作ってもいいんじゃないかな。少しだけDIYしている感じですね。
買い物
今回の買い物のキモはこちら。SATAのHDDをUSB3.0に変換するケーブルです。Raspberry pi 3はUSB3.0ではありませんが、しかし互換性があるのであってもこまらないということでこちらにしました。電源アダプタがついているのでRaspberry piの動作が不安定になることもありません。
サンワサプライ SATA-USB3.0変換ケーブル 0.8m USB-CVIDE3
- 出版社/メーカー: サンワサプライ
- メディア: Personal Computers
- 購入: 7人 クリック: 10回
- この商品を含むブログを見る
HDDとしては、Western DigitalのNAS用HDD(Red)です。消費電力が少なめで常時起動に向いているタイプだそうです。容量は正直なところ6TBもいらないのですが、容量単価を計算するとこのあたりが魅力的なのかなということで選択しています。今回は26,000円ほど。
WD HDD 内蔵ハードディスク 3.5インチ 6TB WD Red WD60EFRX SATA3.0 5400rpm 64MB 3年保証
- 出版社/メーカー: Western Digital
- 発売日: 2014/08/01
- メディア: Personal Computers
- この商品を含むブログ (3件) を見る
3.5インチのHDDを常時裸のままで放置しておくのもさすがにいかがなものかと思いましたので、ケースというかカバーも用意しました。シリコーンでできた柔らかいカバーです。なんと464円。買った時点では裸よりはマシというくらいの期待でした。放熱とかどうなのかなと思いましたが、今回使ってみて、書き込み続けてもさほど熱くならないのでWD Redとの組み合わせなら大丈夫そうです。
グリーンハウス 3.5インチHD用シリコンケース ホワイト GH-CA-HD35W
- 出版社/メーカー: グリーンハウス
- 発売日: 2007/06/20
- メディア: Personal Computers
- クリック: 5回
- この商品を含むブログ (1件) を見る
組み立て
説明無用かと思います。直感的につなぐだけ。アダプタをコンセントにつないだら、本体のスイッチをONにするとHDDの電源が入ります。
試行錯誤
NASに入れたいファイルは、WindowsのPCにあります。ざっと計ったら1.5TB。ネットで見かけた物とか動画なども捨てずにダウンロードしてため続けているのでファイルも小さいのや大きいのやさまざまです。ともかく、最初は単純にSambaとext4で…… と思って作り始めました。
USB接続すると、普通に/dev/sdaとして認識しました。
この時点ではディスクラベルも記録されていないまっさらなHDDです。
pi@pi3:~$ sudo fdisk -l /dev/sda Disk /dev/sda: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes pi@pi3:~$
fdiskは2TBまでのストレージしか扱えないそうで、最近はGPTというディスクラベルが使えるGNU Partedを使うんだそうです。ネットで探してパーティションを作ります。下の記録では無くなってしまっていますが、実際にはmklabelしてからmkpartでパーティションを作っています。
pi@pi3:~$ sudo parted /dev/sda GNU Parted 3.2 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mkpart Partition name? []? File system type? [ext2]? ext4 Start? 0G End? 6001G (parted) p Model: ASMT 2115 (scsi) Disk /dev/sda: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 6001GB 6001GB ext4 (parted) q Information: You may need to update /etc/fstab. pi@pi3:~$
で、そのあとはext4でフォーマットです。さらに/smbディレクトリに自動でマウントされるように設定します。
pi@pi3:~$ sudo mkfs.ext4 /dev/sda mke2fs 1.42.12 (29-Aug-2014) Found a gpt partition table in /dev/sda Proceed anyway? (y,n) y Creating filesystem with 1465130646 4k blocks and 183144448 inodes Filesystem UUID: 72fa8af4-ea42-4319-9987-3e0be3cf542d Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done pi@pi3:~$ sudo mount -t ext4 /dev/sda /smb/ pi@pi3:~$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 28G 5.9G 21G 23% / devtmpfs 459M 0 459M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 6.6M 457M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 463M 0 463M 0% /sys/fs/cgroup /dev/mmcblk0p6 63M 21M 43M 33% /boot tmpfs 93M 0 93M 0% /run/user/1000 /dev/mmcblk0p5 30M 398K 28M 2% /media/pi/SETTINGS /dev/sda 5.5T 58M 5.2T 1% /smb pi@pi3:~$ pi@pi3:~$ sudo vi /etc/fstab pi@pi3:~$ cat /etc/fstab proc /proc proc defaults 0 0 /dev/mmcblk0p6 /boot vfat defaults 0 2 /dev/mmcblk0p7 / ext4 defaults,noatime 0 1 /dev/sda /smb ext4 defaults 0 0 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that pi@pi3:~$ sudo chown pi /smb
NASにするためにSambaを設定するわけですが、いつもここで躓きます。何が正しい設定かわからん……
試行錯誤の結果、とりあえず/etc/samba/smb.confはこんな風にして動いています。PCのWindVoiceユーザが/smbディレクトリにアクセスするとき\\pi3\nasというネットワークフォルダ名に見えます。アクセスするときはRaspberry piの内部ではpiユーザの権限で読み書きされます。ですから/smbディレクトリはpiユーザの所有権にしておくことが必要です。
[nas] comment = NAS Directories path = /smb browseable = yes read only = no valid user = WindVoice force user = pi public = yes
結果
ここまでで一応使えるようになるのですが、心配はしていたのですがやっぱり遅いですね。
Wi-Fiネットワークのせいなのか、USB2.0のせいなのかはっきりしませんが、書き込み速度が1.5MB/sec程度になっています。先ほども書いたのですが、ファイルはなんだかんだで1.5TBもあり(それを何とかしろということだとは重々承知しているのですが)、1.5MB/secでコピーしていては12日もかかってしまいます。これで動画読み取りとかできるのでしょうか……
しかたないので、上記の方法はいったん諦め、Windows PCにUSB3.0接続してNTFSフォーマットしたあと、ファイルをコピーしています。USB3.0接続なら大きいファイルの場合で50MB/Secから最大70MB/Sec程度の速度がでているので、今日のうちにはコピーが終わりそうです。
最近はLinuxでもNTFSがスムーズに使えるので、コピーが終わってからRaspberry piに接続してNASにしようと思います。便利な使い方はもう少し追求しないといけませんね。