技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

拡張可能な 4TB のNASサーバをほぼ2万で

秋月電子 でRaspberryPi4 4GB 届いたので既存の NAS サーバ(12V-3A)で立ててたサーバが、5V 4A という若干の低電力化を狙って…というか前のNAS(ネットワークストレージ)が ACER の e-machines で流石に古すぎて限界近かったから…

ちなみに、購入は 秋月電子スイッチサイエンス から買ってください。
というのも、Amazon初期不良とかあると色々不便だけど、秋月電子などの専門店なら問い合わせ保証しやすいので、電子工作機器ならこういうところの方が何かあったときのために便利です。(まして首都圏なら秋葉行けば直接やり取りもできるしね…)

使ったのはほぼほぼコレ。
NAS サーバ自体は 1 万円で済んでます。

外部 HD はバルクHD 探せば 6T 1万で用意できるけど、今回は昔から使ってる外部HDを利用。
なので 3T だけど

で足して2万。
ただし前提として、USBのマウス/キーボード+HDMIディスプレイは持ってるものと仮定します。(セットアップに使ったらそのあとは使いません)

ラズパイセットアップ:OS インストール

まず真っ先にやるのが Raspberry pi の OS インストール。

公式サイト から、Raspberry Pi Imager を自分の PC にインストールします。
起動するとこんな感じ

f:id:white-azalea:20201017222447p:plain

OS 指定して

f:id:white-azalea:20201017222619p:plain

このまま SD カード選択して、

f:id:white-azalea:20201017222638p:plain

インストール。
これだけ。

f:id:white-azalea:20201017222817p:plain

起動

セットアップウィザード

っても、SDカード差して、キーボード・マウス挿して、ディスプレイ挿したあとで電源ケーブルを挿すだけ。
ラズパイに電源スイッチとかないので、電源接続=起動です。

こういうときにしれっと役立つのがモバイルディスプレイで、自分はコレ使ってます。
もともと外部で勉強会に持って行く用だったのですがコロナでは…lllorz

ちなみに、これは micro HDMI 接続で、ラズパイ4 が MicroHDMI です。
Micro - Micro ケーブルは中々手に入らないので、事前にこんなのも買っておきました

ELECOM タブレットPC用HDMI変換アダプタ HDMI-micro端子 TB-HDADBK

ELECOM タブレットPC用HDMI変換アダプタ HDMI-micro端子 TB-HDADBK

  • 発売日: 2012/07/20
  • メディア: Personal Computers

で、セットアップに戻りますが、最終的に ssh でしか扱わないので、日本語にして文字化けされるととっても面倒。
よってセットアップ時は、ロケールを日本語に指定はするものの、英語を使用するように設定しましょう。

セットアップ時に「 Use English language」のチェックボックスが出たら迷わずチェックして進みましょう。
Wifi は使いたければどうぞ。

その他セットアップ

セットアップができたら、ラズパイのアイコンから、「Configuration > Raspberry Pi Configuration」を指定して起動し、SSH を有効化します。
ついでに インターフェースを CLI にしてしまいましょう。
どうせそろそろお役御免です。

ここまでやったら、Terminal を起動して

ifconfig を実行し、IP/MAC をメモします。
要するに SSH 先と、IP 固定用の MAC アドレスですね。

ローカルのIPアドレスを固定

これはルータ設定で行います。
ルータの種類によって設定方法が違いますので、ざっくりです。

ちなみに自分は BUFFALO で、「詳細設定」から「LAN > DHCPリース」から設定しました。

ここでは仮に、192.168.11.2 とでもしたとします。

ここまでやったら

sudo reboot

でしれっと再起動。

NAS 化の道

ディスクの用意

外部HDをぶっさすとLinux内部にログが残る。
因みにUSBディスクはかなり古い奴なので紹介なし。

$ dmesg
$ dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.51-v7l+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1333 SMP Mon Aug 10 16:51:40 BST 2020
[    0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.2
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] On node 0 totalpages: 1012736

...中略

[    9.090856] scsi 0:0:0:0: Direct-Access     Hitachi  HDS723030ALA640  MKAO PQ: 0 ANSI: 5
[    9.125766] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    9.139537] sd 0:0:0:0: [sda] 732566624 4096-byte logical blocks: (3.00 TB/2.73 TiB)
[    9.143212] sd 0:0:0:0: [sda] Write Protect is off
[    9.143235] sd 0:0:0:0: [sda] Mode Sense: 28 00 00 00
[    9.144028] sd 0:0:0:0: [sda] No Caching mode page found
[    9.144045] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    9.199839]  sda: sda1

...以下略

sda として認識したらしい。
以前から NAS として使っていたので、パーティションが残っているご様子。
これを機にクリーンにしちゃうかー(と Windows で内容をバックアップ。Ext2Fsd Project を使うとWindowsからext3のドライブが読み込める)

パーティション切りなおすかな

$ sudo fdisk /dev/sda
pi@raspberrypi:~ $ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag
...中略

パーティション情報の確認

Command (m for help): p
Disk /dev/sda: 2.7 TiB, 3000592891904 bytes, 732566624 sectors
Disk model: HDS723030ALA640
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x46a914da

Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1          63 732563999 732563937  2.7T 83 Linux

変える必要なさそうなんだよなぁ(汗
まぁ練習がてら消すか

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (256-732566623, default 256):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (256-732566623, default 732566623):

Created a new partition 1 of type 'Primary' and of size 2.7 TiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

ということで、削除→新規→保存 を実行。
まぁBootパーティション作るわけでもないしね。

で、フォーマット

$ sudo mkfs.ext4 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Found a dos partition table in /dev/sda1
Proceed anyway? (y,N) y
Creating filesystem with 732566368 4k blocks and 183148544 inodes
Filesystem UUID: 3c17655a-88a1-473d-b8cc-27b679af558b
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 (262144 blocks): done
Writing superblocks and filesystem accounting information: done

openmediavaultのインストール

NAS 化するだけなら、SMB インストールして終了なのだけど、openmediavault なるものが流行りなのでやってみた。

www.openmediavault.org

ただし、そのままインストールするわけにもいかないらしい…がそこは他人の力を借りる。

github.com

便利便利

$ curl -sSL https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

ポーンとコピペして 30 分位放置。
で、インストール後に IP アドレスたたくと

f:id:white-azalea:20201017231516p:plain

デフォルトアカウントは admin/openmediavault なので、これでログイン。

f:id:white-azalea:20201017231619p:plain

とりあえずユーザの設定、Linux ユーザが基本で列挙されているので、好きにするといいよ。
というかここからユーザ管理できるとかかなり楽になりましたね…

f:id:white-azalea:20201017232252p:plain

SMB をインストール

f:id:white-azalea:20201017232503p:plain

この時点で、すでに接続はできる

f:id:white-azalea:20201017233447p:plain

ディスクを認識させて

f:id:white-azalea:20201017233615p:plain

パーティションを認識させます。
一応ここでマウントしてしまいましょう。

f:id:white-azalea:20201017233835p:plain

共有フォルダを作成して

f:id:white-azalea:20201018120604p:plain

SMB の共有に設定

f:id:white-azalea:20201018120854p:plain

この時点で

f:id:white-azalea:20201018121224p:plain

わーい

因みに速度ですが R:35MB/s W:29MB/s な感じで、(古いストレージでUSB2.0なのでその辺がボトルネックになってるのかも)動画を再生したりに不自由ないレベルです。
放熱についても、手で持ってほんのりあったかい程度。NAS程度なら 40度位で済んでるっぽいので、ヒートシンクもいらない感じです。
電力は 5V3A = 15W と 電球より低いぜ ひゃっほう!