Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
proyecto:storage_a_lo_pobre [2021/12/31 17:54] – [Tabla] looperproyecto:storage_a_lo_pobre [2025/05/30 00:24] (actual) – Struct data changed looper
Línea 14: Línea 14:
  
 El hardware en general en sí es inútil para tareas modernas, y mas específicamente quedan algunos discos duros IDE, también inútiles en otros lugares por su baja capacidad (de 80 a 160 GB), pero las piezas en conjunto son funcionales. El hardware en general en sí es inútil para tareas modernas, y mas específicamente quedan algunos discos duros IDE, también inútiles en otros lugares por su baja capacidad (de 80 a 160 GB), pero las piezas en conjunto son funcionales.
 +
 +En algún lugar que se necesite capacidad de almacenamiento siempre podemos instalar un SSD de similar capacidad, que es bastante más eficiente y mucho más rápido. Pero podemos aprovechar este NAS para tareas que escriben continuamente datos, desgastando así estos discos y no el SSD.
  
 **¿Funcionaría de forma permanente? Y de ser así, ¿en donde?** **¿Funcionaría de forma permanente? Y de ser así, ¿en donde?**
  
-Sí, asumiendo que las piezas no se dañen, o de ser el caso, conseguir un repuesto a precios módicos (gratis). Un lugar en donde podría necesitarse sería en despliegues de servicios de prueba en minidatacenters de LaOtraRed, que pueden estar funcionando en provincia.+Sí, asumiendo que las piezas no se dañen, o de ser el caso, conseguir un repuesto a precios módicos (gratis). Un lugar en donde podría necesitarse este NAS sería en despliegues de servicios de prueba en minidatacenters de LaOtraRed, que pueden estar funcionando en provincia.
  
 ==== Galería ==== ==== Galería ====
  
-{{gallery>proyecto:storage_a_lo_pobre?5&lightbox&modsort& }}+{{gallery>proyecto:storage_a_lo_pobre?5&1920X1080&lightbox&modsort& }}
  
 </col> </col>
Línea 28: Línea 30:
 ==== Inventario ==== ==== Inventario ====
 ^  Artefacto              ^  Características y/o capacidades                Descripción                                                ^ ^  Artefacto              ^  Características y/o capacidades                Descripción                                                ^
-| Placa madre              Intel D845GVFN                                |                                                             | +| Placa madre             | Intel D845GVFN                                 |                                                             | 
-| CPU                      Intel(R) Pentium(R) 4 CPU 2.40GHz             | XD                                                          |+| CPU                     | Intel(R) Pentium(R) 4 CPU 2.40GHz              | XD                                                          |
 | Memoria RAM             | DDR 256M                                                                                                   | | Memoria RAM             | DDR 256M                                                                                                   |
 | Memoria RAM             | DDR 512M                                       | Más memoria ayuda como caché                                | | Memoria RAM             | DDR 512M                                       | Más memoria ayuda como caché                                |
 | Pendrive                | Sony 16GB                                      | Me lo gané en el HM del 2015. Lo uso como /                 | | Pendrive                | Sony 16GB                                      | Me lo gané en el HM del 2015. Lo uso como /                 |
-| Placa de expansión PCI  | Ethernet 10/100 RTL8139                        | Para no saturar el puerto principal, que también es 10/100  |+| Placa de expansión PCI  | Ethernet 10/100 RTL8139                        | Para no saturar el puerto de la placa madre, que también es 10/100  |
 | Placa de expansión PCI  | Ethernet 10/100 3c905C-TX/TX-M                 | idem                                                        | | Placa de expansión PCI  | Ethernet 10/100 3c905C-TX/TX-M                 | idem                                                        |
 | Disco duro              | Hitachi Deskstar 7K80 HDS728080PLAT20 80GB     | Storage                                                     | | Disco duro              | Hitachi Deskstar 7K80 HDS728080PLAT20 80GB     | Storage                                                     |
Línea 39: Línea 41:
 | Disco duro              | Hitachi Deskstar T7K250 HDT722516DLAT80 160GB  | Storage (en reserva)                                        | | Disco duro              | Hitachi Deskstar T7K250 HDT722516DLAT80 160GB  | Storage (en reserva)                                        |
  
 +==== Curiosidades aprendidas o relevantes ====
  
 +  * Los cables IDE tienen dos "configuraciones": maestro y esclavo. Hay que mover los pines correctos para configurarlos (varía según el modelo), no es como en SATA que todo se conecta igual.
 +  * Los cables IDE clásicos (IDC40/40) soportan solo ATA/33, que vuelve la unidad lentísima (~30 MB/s). Yo he usado cables IDC40/80 que soportan hasta ATA/133 (~60 MB/s).
 +  * Alpine Linux es genial.
 +  * Placas madres viejas como la Intel D845GVFN sí pueden bootear por USB (yo lo consideraba imposible). Creo que esto depende mucho del modelo de pendrive.
 +  * Para no saturar los puertos se ha pensado en poner más tarjetas PCI-Ethernet, pero el ancho de banda del bus PCI tampoco es mucho. Llegaremos a un cuello de botella de todas maneras :)
  
 </col> </col>
 </grid> </grid>
 +
 +
 +==== Bitácora ====
 +=== 2021 Diciembre ===
 +
 +Salió Alpine 3.15. Intenté actualizar (por mi versionitis) y el sistema dejó de arrancar. Conectando el pendrive a mi PC, intenté resolverlo con un chroot pero no funcionó. Eventualmente arranqué el pendrive mediante una máquina virtual en VirtualBox y desactualicé a la versión 3.14, que anda funcionando bastante bien.
 +
 +Originalmente estaba instalado un disco más, de 60 GB, pero empezó a escupir errores de I/O y preferí quitarlo. Como futuro proyecto podríamos desarmarlo con los chicos del HL, por si a alguien le interesa (hay gente que con uno se armó adornos para sus habitaciones)
 +
 +<code>
 +[  437.917475] sd 0:0:1:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08 cmd_age=48s
 +[  437.917482] sd 0:0:1:0: [sdb] tag#0 Sense Key : 0x5 [current] 
 +[  437.917487] sd 0:0:1:0: [sdb] tag#0 ASC=0x21 ASCQ=0x4 
 +[  437.917492] sd 0:0:1:0: [sdb] tag#0 CDB: opcode=0x28 28 00 00 62 b1 80 00 05 80 00
 +[  437.917499] blk_update_request: I/O error, dev sdb, sector 6467968 op 0x0:(READ) flags 0x4000 phys_seg 120 prio class 0
 +[  437.917533] ata1: EH complete
 +[  437.963566] ata1.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
 +[  437.963570] ata1.01: BMDMA stat 0x65
 +[  437.963574] ata1.01: failed command: READ DMA EXT
 +[  437.963582] ata1.01: cmd 25/00:00:00:d0:62/00:05:00:00:00/f0 tag 0 dma 655360 in
 +[  437.963582]          res 00/00:00:00:00:00/01:01:01:01:01/00 Emask 0x2 (HSM violation)
 +[  437.963610] ata1: soft resetting link
 +[  441.272977] ata1.00: configured for UDMA/100
 +[  441.280749] ata1.01: configured for UDMA/33
 +[  441.280780] ata1: EH complete
 +[  471.849413] ata1: lost interrupt (Status 0x0)
 +[  471.849444] ata1.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
 +[  471.849450] ata1.01: failed command: READ DMA EXT
 +[  471.849460] ata1.01: cmd 25/00:00:00:d0:62/00:05:00:00:00/f0 tag 0 dma 655360 in
 +[  471.849460]          res 40/00:00:00:00:00/01:01:01:01:01/00 Emask 0x4 (timeout)
 +[  471.849463] ata1.01: status: { DRDY }
 +[  471.849496] ata1: soft resetting link
 +[  472.042210] ata1.00: configured for UDMA/100
 +[  472.049949] ata1.01: configured for UDMA/33
 +[  472.049969] ata1: EH complete
 +</code>
 +
 +=== 2021 Previo (de junio a nov) ===
 +
 +Se me ocurrió la idea de forma random (why not).
 +
 +Se supone que esa placa madre, con el BIOS actualizado y todo, no podía bootear desde un pendrive: esto lo quería ya que en mi previo trabajo un NAS tenía así su instalación: puedes armar y desarmar tu storage fácil, si algo de tu / (root) falla puedes instalar uno nuevo cómodamente, etc. Y resulta que sí, la placa sí puede arrancar desde un pendrive. Nunca pude hacer eso antes, fue raro (quizás es el modelo de pendrive).
 +
 +Elegí Alpine Linux por ser muy ligero y llevarse bien con almacenamiento flash (que suelen desgastarse con cada escritura). Booteé por red con netboot.xyz (así me ahorro instalar un lector de CD) e instalé la versión 3.14. Luego, el resto de la configuración fue normal y sin ninguna sorpresa, usando los tutoriales de la wiki de Alpine.
 +
 +Respecto al storage que usaremos desde otras partes de la red, dedicaremos los dos discos a la tarea y los configuraremos en **RAID 1**: la información se duplicará en ambos, y si un disco falla aún tendremos acceso a la información mediante el que queda.
 +
 +Lo que hice fue:
 +  - Instalar el SO y configurar la red. Los tres puertos de red se detectaron, y creé un puente ''br0'' entre ellos mas una configuración de red estática en ''/etc/network/interfaces''.
 +  - Hacerles un re-reformateo en bajo nivel((Este re-reformateo ayuda a limpiar algún posible sector defectuoso, si este es magnético (pasa con discos viejitos). No ayuda si el disco ya está "sonando raro".)) borrando todo, con ''shred -n 1 -z -v /dev/sda'': una pasada a todo el disco con datos aleatorios, y otra pasada con ceros.
 +  - Verificar si los discos están bien, con ''smartctl -t long /dev/sda''.
 +  - Particionarlos (con tipo MBR y activando una sola partición grande) y formateándolos((Previamente usé ZFS, pero no fue buena idea y el uso de CPU era continuamente elevado)) [[https://wiki.alpinelinux.org/wiki/Setting_up_a_software_RAID_array|como RAID]]: ''<nowiki>mdadm --create --level=1 --raid-devices=2 /dev/md0 /dev/sda1 /dev/sdb1</nowiki>''((Quise usar aquí el formato estable /dev/disk/by-id recomendado en otras partes como comunidades de ZFS, pero fueron ignoradas por mdadm.))
 +  - Crear el sistema de archivos con ''mkfs.ext4 /dev/md0''
 +  - Activar su entrada en /etc/fstab, para que sea accesible al iniciar la PC: ''UUID=01468727-d432-4b95-aecf-303c81e38b9c       /storage ext4   rw,noatime,commit=60    0       3''
 +  - [[https://wiki.alpinelinux.org/wiki/Setting_up_a_nfs-server|Instalar nfs-server]] y activar su entrada en /etc/exports, para que el storage se pueda acceder desde la red mediante NFS: ''/storage 10.0.0.0/8(rw,no_subtree_check,insecure,crossmnt,async)''((Uso async ya que el rendimiento de escritura aleatoria con bloques 4K es horrendo, como 40 KB/s. Además el rango de IP habilitado acá es solo un ejemplo.)).
 +
 +Listo. El storage ya es accesible mediante NFS desde el resto de la red :)
 +
 +---
 +
 +Para el futuro, podríamos:
 +  * Apagar los discos si nadie los está usando (no sé si los modelos de discos que tenemos nos permiten eso)
 ---- struct data ---- ---- struct data ----
 proyecto.nombre      : NAS a lo Pobre proyecto.nombre      : NAS a lo Pobre
 proyecto.mantenedor  : Looper proyecto.mantenedor  : Looper
 proyecto.palabrasclave : nas, linux, raid, mdadm, alpine proyecto.palabrasclave : nas, linux, raid, mdadm, alpine
 +proyecto.descripcion : Tomar una Pentium 4 con discos duros de hace una década, y usarlo como servidor de archivos
 proyecto.fechainicio : 2021-07-08 00:00 proyecto.fechainicio : 2021-07-08 00:00
-proyecto.ubicacion   : +proyecto.ubicacion   : Casa de Luis
 proyecto.estado      : Activo proyecto.estado      : Activo
 ---- ----
  
  • proyecto/storage_a_lo_pobre.1640987688.txt.gz
  • Última modificación: 2021/12/31 17:54
  • por looper