Eu, como moitos outros usuarios de MacBook Pro, afrontei o problema da memoria interna insuficiente. Para ser máis precisos, o rMBP que utilizaba a diario estaba equipado cun SSD cunha capacidade de só 256 GB, o que, por suposto, non foi suficiente durante moito tempo.
E cando, por riba de todo, comecei a gravar vídeos durante os meus voos, a situación non fixo máis que empeorar. O volume de imaxes filmadas despois destes voos foi de máis de 50 GB e o meu pobre SSD de 256 GB encheuse moi pronto, o que me obrigou a comprar unha unidade externa de 1 TB. Non obstante, despois dun ano, xa non puido manexar a cantidade de datos que estaba xerando, sen esquecer a falta de redundancia e de copia de seguridade facíao inadecuado para aloxar información importante.
Entón, nun momento dado decidín construír un NAS grande coa esperanza de que este sistema durase polo menos un par de anos sen requirir outra actualización.
Escribín este artigo principalmente como un recordatorio do que fixen exactamente e como o fixen por se teño que facelo de novo. Espero que tamén che sexa útil se decides facer o mesmo.
Quizais sexa máis doado mercar?
Entón, sabemos o que queremos conseguir, a pregunta segue sendo: como?
Primeiro mirei solucións comerciais e mirei en particular a Synology, que se suponía que proporcionaba os mellores sistemas NAS para consumidores do mercado. Non obstante, o custo deste servizo resultou ser bastante elevado. O sistema de 4 bahías máis barato custa máis de 300 dólares e non inclúe discos duros. Ademais, o recheo interno deste kit en si non é particularmente impresionante, o que pon en dúbida o seu rendemento real.
Entón pensei: por que non construír eu mesmo un servidor NAS?
Buscar un servidor axeitado
Se vas montar un servidor deste tipo, primeiro debes atopar o hardware adecuado. Un servidor usado debería ser bastante axeitado para esta compilación, xa que non necesitaremos moito rendemento para as tarefas de almacenamento. Entre as cousas necesarias, debemos destacar unha gran cantidade de RAM, varios conectores SATA e boas tarxetas de rede. Dado que o meu servidor funcionará no lugar da miña residencia permanente, o nivel de ruído tamén importa.
Comecei a busca en eBay. Aínda que atopei alí moitos Dell PowerEdge R410/R210 usados por menos de 100 dólares, tendo experiencia traballando nunha sala de servidores, sabía que estas unidades 1U facían demasiado ruído e non eran aptas para o uso doméstico. Como regra xeral, os servidores de torre adoitan ser menos ruidosos, pero, por desgraza, había poucos deles en eBay e todos eran caros ou pouco potenciados.
O seguinte lugar para buscar foi Craiglist, onde atopei a alguén que vendía un HP ProLiant N40L usado por só 75 dólares. Estaba familiarizado con estes servidores, que normalmente custaban uns 300 dólares ata usados, así que enviei un correo electrónico ao vendedor coa esperanza de que o anuncio aínda estivese activo. Decatándome de que era así, eu, sen pensalo dúas veces, dirixínme a San Mateo para recoller este servidor, que a primeira vista me gustou definitivamente. Tiña un desgaste mínimo e, salvo un pouco de po, todo o demais era xenial.
Foto do servidor, inmediatamente despois da compra
Aquí están as especificacións do kit que merquei:
- CPUProcesador AMD Turion(tm) II Neo N40L de dobre núcleo (64 bits)
- RAM: 8 GB de RAM non ECC (instalado polo propietario anterior)
- flash: Unidade USB de 4 GB
- Conectores SATA:4+1
- NIC: NIC integrada de 1 Gbps
Nin que dicir ten que, a pesar de ter varios anos de antigüidade, a especificación deste servidor segue sendo superior á maioría das opcións de NAS do mercado, especialmente en canto á memoria RAM. Un pouco máis tarde, incluso actualicei a 16 GB ECC cun maior tamaño do búfer e unha maior protección de datos.
Selección de discos duros
Agora temos un excelente sistema de traballo e só queda seleccionar discos duros para el. Obviamente, por eses 75 dólares só conseguín o propio servidor sen o disco duro, o que non me sorprendeu.
Despois de investigar un pouco, descubrín que os discos duros WD Red son os máis axeitados para executar sistemas NAS 24 horas ao día. Para compralos, acudín a Amazon, onde merquei 7 copias de 4 TB cada unha. Basicamente, podes conectar calquera disco duro que prefires, pero asegúrate de que teñan a mesma capacidade e velocidade. Isto axudarache a evitar posibles problemas de rendemento RAID a longo prazo.
Configuración do sistema
Creo que moitos usarán o sistema para as súas compilacións de NAS
Instalar CentOS en USB é bastante sinxelo: só tes que especificar USB como fonte de arranque e, ao iniciar o asistente de instalación, guiarache por todas as súas etapas.
Construción RAID
Despois de instalar con éxito CentOS, tamén instalei ZFS en Linux seguindo o indicado
Unha vez completado este proceso, carguei o módulo ZFS Kernel:
$ sudo modprobe zfs
E creou a matriz RAIDZ1 usando o comando 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
Teña en conta que aquí estou usando os ID dos discos duros en lugar dos seus nomes de visualización (sdx
) para reducir a posibilidade de que non se instalen despois do arranque debido a un cambio de letra.
Tamén engadín a caché ZIL e L2ARC que se executa nun SSD separado, dividindo ese SSD en dúas particións: 5 GB para ZIL e o resto para L2ARC.
En canto a RAIDZ1, pode soportar un fallo de disco. Moitos argumentan que esta opción de grupo non se debe usar debido á probabilidade de que o segundo disco falle durante o proceso de reconstrución do RAID, o que pode provocar a perda de datos. Ignorei esta recomendación, xa que facía regularmente copias de seguridade de datos importantes nun dispositivo remoto e o fallo de toda a matriz só pode afectar á dispoñibilidade dos datos, pero non á súa seguridade. Se non tes a posibilidade de facer copias de seguridade, sería mellor utilizar solucións como RAIDZ1 ou RAID2.
Podes verificar que a creación do grupo foi exitosa executando:
$ sudo zpool status
и
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data
De forma predeterminada, ZFS monta directamente o grupo recén creado /
, que é xeralmente indesexable. Podes cambiar isto executando:
zfs set mountpoint=/mnt/data data
Desde aquí pode optar por crear un ou máis conxuntos de datos para almacenar os datos. Creei dous, un para a copia de seguridade de Time Machine e outro para o almacenamento de ficheiros compartidos. Limitei o tamaño do conxunto de datos Time Machine a unha cota de 512 GB para evitar o seu crecemento infinito.
Optimización
zfs set compression=on data
Este comando activa o soporte de compresión ZFS. A compresión usa unha potencia mínima da CPU, pero pode mellorar significativamente o rendemento de E/S, polo que sempre se recomenda.
zfs set relatime=on data
Con este comando reducimos o número de actualizacións a atime
para reducir a xeración de IOPS ao acceder aos ficheiros.
Por defecto, ZFS en Linux usa o 50% da memoria física para ARC. No meu caso, cando o número total de ficheiros é pequeno, pódese aumentar con seguridade ata o 90% xa que non se executarán outras aplicacións no servidor.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Despois empregando
$ 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
...
Configurar tarefas recorrentes
usei
Instalación de Netatalk
Configuración da configuración
$ 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
Nótese que vol dbnest
é unha gran mellora no meu caso, xa que por defecto Netatalk escribe a base de datos CNID na raíz do sistema de ficheiros, o que non era nada desexable xa que o meu sistema de ficheiros principal funciona en USB e, polo tanto, é relativamente lento. Acendendo vol dbnest
resulta en gardar a base de datos na raíz do volume, que neste caso pertence ao grupo ZFS e xa é unha orde de magnitude máis produtiva.
Activando portos no Firewall
$ 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
Se todo estaba configurado correctamente, a túa máquina debería aparecer no Finder e Time Machine tamén debería funcionar.
Axustes adicionais
Monitorización SMART
Recoméndase supervisar o estado dos seus discos para evitar fallos do disco.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
Daemon para UPS
Supervisa a carga do UPS APC e apaga o sistema cando a carga se fai críticamente baixa.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Actualización de hardware
Unha semana despois de configurar o sistema, comecei a preocuparme cada vez máis pola memoria non ECC do servidor. Ademais, no caso de ZFS, a memoria adicional para almacenar en búfer será moi útil. Entón, volvín a Amazon onde merquei 2x Kingston DDR3 8GB ECC RAM por 80 dólares cada un e substituín a RAM de escritorio instalada polo propietario anterior. O sistema iniciouse a primeira vez sen ningún problema, e asegúrese de que o soporte ECC estaba activado:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
Resultado
Quedei moi satisfeito co resultado. Agora podo manter constantemente ocupada a conexión LAN de 1 Gbps do servidor copiando ficheiros e Time Machine funciona perfectamente. Entón, en xeral, estou feliz coa configuración.
Custo total:
- 1 * HP ProLiant N40L = $75
- 2 * 8 GB de RAM ECC = 174 $
- 4 * WD Red 3 TB HDD = $440
En total = $ 689
Agora podo dicir que o prezo valeu a pena.
Fai os seus propios servidores NAS?
Fonte: www.habr.com