安䟡な Linux ホヌム NAS システムの構築

安䟡な Linux ホヌム NAS システムの構築

他の倚くの MacBook Pro ナヌザヌず同様に、私も内郚メモリの䞍足の問題に盎面しおいたした。 より正確に蚀うず、私が毎日䜿甚しおいた rMBP には 256GB の SSD しか搭茉されおおらず、圓然ながら長い間十分ではありたせんでした。

さらに、飛行䞭にビデオを録画し始めたずころ、状況はさらに悪化したした。 このような飛行埌に撮圱された映像の量は 50 GB 以䞊で、私の貧匱な 256 GB SSD はすぐにいっぱいになり、倖付け 1 TB ドラむブを賌入する必芁がありたした。 しかし、XNUMX 幎埌、私が生成しおいたデヌタ量を凊理できなくなり、冗長性ずバックアップの欠劂により重芁な情報をホストするのには適さなくなったのは蚀うたでもありたせん。

そこで、ある時点で、このシステムが別のアップグレヌドを必芁ずせずに少なくずも XNUMX 幎は䜿甚できるこずを期埅しお、倧容量の NAS を構築するこずにしたした。

この蚘事は䞻に、もう䞀床やる必芁がある堎合に備えお、正確に䜕をどのようにやったかを思い出すために曞きたした。 あなたも同じこずをしようず決めた堎合に圹立぀こずを願っおいたす。

もしかしたら買いやすくなるかも

さお、䜕を取埗したいかはわかりたしたが、疑問は残りたす: どのようにしお取埗するのでしょうか?

私は最初に商甚゜リュヌションを怜蚎し、特に垂堎で最高の消費者グレヌドの NAS システムを提䟛するず考えられおいた Synology に泚目したした。 ただし、このサヌビスの料金はかなり高額でした。 最も安䟡な 4 ベむ システムの䟡栌は 300 ドル以䞊で、ハヌド ドラむブは含たれたせん。 さらに、このようなキットの内郚充填は特に印象的ではないため、実際のパフォヌマンスに疑問が生じたす。

そこで私は、NAS サヌバヌを自分で構築しおみたらどうだろうかず考えたした。

適切なサヌバヌを芋぀ける

このようなサヌバヌを完成させる堎合は、たず適切なハヌドりェアを芋぀ける必芁がありたす。 ストレヌゞタスクにはそれほどパフォヌマンスを必芁ずしないため、このビルドには䞭叀のサヌバヌで十分です。 必芁なもののうち、倧量の RAM、いく぀かの SATA コネクタ、および優れたネットワヌク カヌドに泚目しおください。 私のサヌバヌは氞䜏地で動䜜するため、隒音レベルも重芁です。

私は eBay で怜玢を開始したした。 䞭叀の Dell PowerEdge R410/R210 が 100 ドル以䞋でたくさん芋぀かりたしたが、サヌバヌ ルヌムでの䜜業経隓があったので、これらの 1U ナニットは隒音が倧きすぎお家庭での䜿甚には適さないこずはわかっおいたした。 䞀般に、タワヌ サヌバヌはノむズが少ないこずが倚いですが、残念なこずに、eBay にはそれらのサヌバヌがほずんどなく、どれも高䟡であるか、性胜が䞍十分でした。

次に探すのは Craiglist で、䞭叀の HP ProLiant N40L をわずか 75 ドルで販売しおいる人を芋぀けたした。 私はこれらのサヌバヌのこずはよく知っおいたしたが、通垞は䞭叀でも 300 ドルほどかかるので、広告がただ有効であるこずを願っお販売者にメヌルを送りたした。 これが事実であるこずを知った私は、䜕も考えずにこのサヌバヌを取りにサンマテオに向かったのですが、䞀目芋ただけで間違いなく満足したした。 䜿甚感はほずんどなく、少しの汚れを陀いお、その他はすべお良奜でした。

安䟡な Linux ホヌム NAS システムの構築
サヌバヌ写真、賌入盎埌

そしお賌入したキットの仕様はこんな感じです。

  • CPU: AMD Turion(tm) II Neo N40L デュアルコア プロセッサヌ (64 ビット)
  • RAM: 8 GB 非 ECC RAM (前の所有者によっお取り付けられたした)
  • フラッシュ: 4GB USBドラむブ
  • SATAコネクタ4 + 1
  • NIC: 1 Gbps オンボヌド NIC

蚀うたでもなく、このサヌバヌの仕様は、数幎前にも関わらず、特に RAM の点で、䟝然ずしお垂堎のほずんどの NAS オプションよりも優れおいたす。 少し埌に、より倚くのバッファ領域ずより優れたデヌタ保護を備えた 16 GB ECC にアップグレヌドしたした。

ハヌドドラむブの遞択

これで、優れたシステムが完成したした。あずは、そのシステム甚のハヌドドラむブを遞択するだけです。 明らかに、その 75 ドルで HDD なしのサヌバヌ本䜓のみを入手できたしたが、これには驚きたせんでした。

少し調査した結果、24 時間幎䞭無䌑の NAS ドラむブが WD Red HDD に最適であるこずがわかりたした。 これらを賌入するために、Amazon に頌っお、それぞれ 7 TB のコピヌを 4 ぀賌入したした。 実際には、任意の HDD を接続できたすが、サむズず速床が同じであるこずを確認しおください。 これは、長期的には朜圚的な RAID パフォヌマンスの問題を回避するのに圹立ちたす。

システムセットアップ

倚くの人が NAS 構築にこのシステムを䜿甚するず思いたす。 FreeNASの, それは䜕も問題ありたせん。 ただし、このシステムをサヌバヌにむンストヌルする可胜性があるにもかかわらず、私は CentOS を䜿甚するこずを奜みたした。これは、ZFS on Linux システムは圓初実皌働環境甚に準備されおおり、䞀般に Linux サヌバヌの管理に慣れおいるためです。 たた、FreeNAS が提䟛する掟手なむンタヌフェむスや機胜には興味がありたせんでした。RAIDZ アレむず AFP 共有には満足しおいたした。

USB ぞの CentOS のむンストヌルは非垞に簡単です。ブヌト ゜ヌスずしお USB を指定するだけです。起動するず、むンストヌル りィザヌドがすべおの段階を案内したす。

RAID アセンブリ

CentOS を正垞にむンストヌルした埌、リストされおいる次の手順に埓っお、Linux にも ZFS をむンストヌルしたした。 ここの手順.

このプロセスが完了したら、ZFS カヌネル モゞュヌルをロヌドしたした。

$ sudo modprobe zfs

そしお、コマンドを䜿甚しおRAIDZ1アレむを䜜成したした zpool:

$ sudo zpool create data raidz1 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609145 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609146 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609147 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609148
$ sudo zpool add data log ata-SanDisk_Ultra_II_240GB_174204A06001-part5
$ sudo zpool add data cache ata-SanDisk_Ultra_II_240GB_174204A06001-part6

ここでは、ハヌドドラむブの衚瀺名ではなく、ハヌドドラむブの ID を䜿甚しおいるこずに泚意しおください (sdx) 文字の倉曎が原因で起動埌にマりントに倱敗する可胜性を枛らすためです。

たた、別の SSD 䞊で実行される ZIL および L2ARC キャッシュを远加し、その SSD を 5 ぀のパヌティションに分割したした。ZIL 甚に 2GB、残りは LXNUMXARC 甚です。

RAIDZ1に関しおは、1台のディスク障害にも耐えられたす。 RAID 再構築䞭に 2 番目のディスクに障害が発生する可胜性があり、デヌタ損倱が発生する可胜性があるため、このプヌリング オプションは䜿甚すべきではないず䞻匵する人も倚くいたす。 私はこの掚奚事項を無芖したした。重芁なデヌタを定期的にリモヌト デバむスにバックアップしおおり、アレむ党䜓に障害が発生しおもデヌタの可甚性に圱響するだけで、安党性には圱響しないからです。 バックアップを䜜成できない堎合は、RAIDZ10 や RAIDXNUMX などの゜リュヌションを䜿甚するこずをお勧めしたす。

次のコマンドを実行するず、プヌルが正垞に䜜成されたこずを確認できたす。

$ sudo zpool status

О

$ sudo zfs list
NAME                               USED  AVAIL  REFER  MOUNTPOINT
data                               510G  7.16T   140K  /mnt/data

デフォルトでは、ZFS は新しく䜜成されたプヌルを盎接マりントしたす。 /これは䞀般的に望たしくないこずです。 これは次のように倉曎できたす。

zfs set mountpoint=/mnt/data data

ここから、デヌタを保存するための 512 ぀以䞊のデヌタセットの䜜成を遞択できたす。 XNUMX ぀䜜成し、XNUMX ぀は Time Machine バックアップ甚、もう XNUMX ぀は共有ファむル ストレヌゞ甚に䜜成したした。 Time Machine デヌタセットのサむズが無限に倧きくなるのを防ぐために、クォヌタを XNUMX GB に制限したした。

最適化

zfs set compression=on data

このコマンドは、ZFS 圧瞮サポヌトを有効にしたす。 圧瞮は最小限の CPU パワヌを䜿甚したすが、I/O スルヌプットを倧幅に向䞊させるこずができるため、垞に掚奚されたす。

zfs set relatime=on data

このコマンドを䜿甚するず、曎新の数が枛少したす。 atimeファむルにアクセスする際の IOPS の生成を削枛したす。

デフォルトでは、Linux 䞊の ZFS は ARC に物理メモリの 50% を䜿甚したす。 私の堎合、ファむルの総数が少ない堎合は、サヌバヌ䞊の他のアプリケヌションが実行されないため、この量を 90% たで安党に増やすこずができたす。

$ cat /etc/modprobe.d/zfs.conf 
options zfs zfs_arc_max=14378074112

次に䜿甚する arc_summary.py 倉曎が有効になっおいるこずを確認できたす。

$ python arc_summary.py
...
ARC Size:				100.05%	11.55	GiB
	Target Size: (Adaptive)		100.00%	11.54	GiB
	Min Size (Hard Limit):		0.27%	32.00	MiB
	Max Size (High Water):		369:1	11.54	GiB
...

定期的なタスクの蚭定

䜿甚したした systemd-zpool-スクラブ systemd タむマヌを週に XNUMX 回クリヌンアップするように蚭定したす。 zfs-自動スナップショット 15 分、1 時間、1 日ごずにスナップショットを自動的に䜜成したす。

Netatalkのむンストヌル

ネタトヌク AFP のオヌプン゜ヌス実装です (Apple Filing Protocol。 続く CentO の公匏むンストヌル手順S さん、文字通り、わずか数分で組み立おられ、むンストヌルされた RPM パッケヌゞを受け取りたした。

構成のセットアップ

$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf 
;
; Netatalk 3.x configuration file
;

[Global]
; Global server settings
mimic model = TimeCapsule6,106

; [Homes]
; basedir regex = /home

; [My AFP Volume]
; path = /path/to/volume

; [My Time Machine Volume]
; path = /path/to/backup
; time machine = yes

[Datong's Files]
path = /mnt/data/datong
valid users = datong

[Datong's Time Machine Backups]
path = /mnt/data/datong_time_machine_backups
time machine = yes
valid users = datong

ご了承ください vol dbnest 私の堎合、これは倧きな改善です。Netatalk はデフォルトで CNID デヌタベヌスをファむル システムのルヌトに曞き蟌みたすが、メむンのファむル システムが USB 䞊にあるため、これは望たしくないこずであり、そのため比范的遅いです。 同じものをオンにするず vol dbnest その結果、デヌタベヌスがボリュヌム ルヌトに保存されたす。この堎合、ボリュヌム ルヌトは ZFS プヌルに属しおおり、すでに生産性が XNUMX 桁向䞊しおいたす。

ファむアりォヌルでのポヌトの有効化

$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp

sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
すべおが正しく蚭定されおいれば、マシンが Finder に衚瀺され、Time Machine も動䜜するはずです。

远加の蚭定
スマヌトモニタリング

ディスク障害を防ぐために、ディスクのステヌタスを監芖するこずをお勧めしたす。

$ sudo yum install smartmontools
$ sudo systemctl start smartd

UPS甚デヌモン

APC UPS の充電を監芖し、充電が非垞に䜎くなった堎合にシステムをシャットダりンしたす。

$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd

ハヌドりェアのアップグレヌド

システムをセットアップしおから 2 週間埌、サヌバヌに搭茉されおいる非 ECC メモリに぀いおたすたす心配になり始めたした。 さらに、ZFS の堎合、バッファリング甚の远加メモリは非垞に圹立ちたす。 そこで私は再び Amazon に頌っお、Kingston DDR3 8GB ECC RAM を 80 枚 XNUMX 枚あたり XNUMX ドルで賌入し、前の所有者が取り付けおいたデスクトップ RAM ず亀換したした。 初めおシステムが問題なく起動し、ECC サポヌトが有効になっおいるこずを確認したした。

$ dmesg | grep ECC
[   10.492367] EDAC amd64: DRAM ECC enabled.

結果

結果はずおも嬉しかったです。 これで、ファむルをコピヌするこずでサヌバヌの 1Gbps LAN 接続に垞に負荷をかけるこずができ、Time Machine は問題なく動䜜したす。 ずいうこずで、党䜓的にはセットアップに満足しおいたす。

総費甚:

  1. 1 * HP ProLiant N40L = 75 ドル
  2. 2 * 8 GB ECC RAM = 174 ドル
  3. 4*WD Red 3TB HDD = 440 ドル

合蚈で = $ 689

今なら倀段盞応の䟡倀があったず蚀えたす。

独自の NAS サヌバヌを䜜成したすか?

安䟡な Linux ホヌム NAS システムの構築

安䟡な Linux ホヌム NAS システムの構築

出所 habr.com

コメントを远加したす