Construyo un servidor de archivos casero de FreeBSD usando ZFS.
Es un AMD X2 3200+ con 3 GB de RAM. Tiene un PCI Express Gig-E. La unidad de arranque es una vieja 400GB y tengo 4 unidades Seagte de 750GB (una con una versión de firmware diferente, por si acaso).
Arrancar desde ZFS hubiera sido bueno (facilitaría la instalación), pero utilicé las instrucciones de ZFSOnRoot para configurar la unidad Root / OS con ZFS (si todas las particiones son ZFS, entonces no es necesario hacer un fsck en el arranque para verificar los sistemas de archivos UFS). La razón por la que desea esto es que puede configurar todas sus particiones (/ var, / usr, / tmp, etc.) con diferentes opciones según sea necesario (como noatime y async para / usr / obj, lo que acelerará el kernel compila), pero todos compartirán espacio de un grupo común. Luego puede configurar una unidad de datos y dar a cada usuario una partición propia (con diferentes comillas y configuraciones). Luego puede tomar instantáneas (que son de bajo costo en ZFS).
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
En cuanto al rendimiento, copiar archivos es muy rápido. Lo único que quisiera señalar es que he estado usando ZFS en sistemas AMD64 de FreeBSD que tienen 3-4 GB y ha funcionado bien, pero por mi lectura, me preocuparía ejecutarlo en un sistema i386 que tenía 2 GB o menos memoria
Me quedé sin puertos SATA en la placa base, por lo que no he intentado agregar nuevas unidades. La configuración inicial fue simple, un comando para crear el RAIDZ y luego el comando para crear / home, que fue formateado en segundos (IIRC). Todavía estoy usando la versión anterior de ZFS (v6), por lo que tiene algunas limitaciones (no requiere unidades del mismo tamaño, pero a diferencia de un Drobo, si tenía 3 unidades de 750 GB y una unidad de 1 TB, el resultado final será como si tuvieras 4 unidades de 750GB).
Una de las principales razones por las que usé ZFS con RAIDZ fue la suma de verificación de extremo a extremo. El CERN publicó un documento que documentaba una prueba que hicieron donde encontraron más de 200 errores de lectura sin corregir mientras ejecutaban una prueba de R / W durante un período de unas pocas semanas (se espera que el ECC en las unidades minoristas tenga una falla una vez cada 12 TB leídos). Me gustaría que los datos de mi servidor sean correctos. Tuve un accidente grave debido a un corte de energía (alguien sobrecargó el UPS al enchufarle un calentador), pero cuando el sistema puede retroceder, ZFS regresó rápidamente, sin los problemas estándar de fsck.
Me gusta, porque luego podría agregar CUPS a Samba para obtener un servidor de impresión. Agregué un caché DNS y puedo agregar otro software a mi gusto (estoy pensando en agregar monitoreo SNMP a los escritorios de mi casa para medir el uso del ancho de banda). Por lo que gasté en el sistema, estoy seguro de que podría haber comprado una caja NAS barata, pero no tendría una caja Unix local de 64 bits para jugar. Si te gusta FreeBSD, diría ir con él. Si prefiere Linux, le recomendaría una solución Linux. Si no desea hacer ninguna administración, es cuando me gustaría ir a la caja NAS independiente.
En mi próxima ronda de actualizaciones de hardware, planeo actualizar el hardware y luego instalar la versión actual de FreeBSD, que tiene ZFS v13. V13 es genial porque tengo un disco RAM con batería de respaldo que puedo usar para el registro ZIL (esto hace que las escrituras griten). También es compatible con el uso de SSD para acelerar el servidor de archivos (las especificaciones de los nuevos servidores de archivos Sun son geniales y las obtienen de un sistema ZFS que usa SSD para que el sistema sea muy rápido).
EDITAR: (No puedo dejar comentarios todavía). Seguí las instrucciones en http://www.ish.com.au/solutions/articles/freebsdzfs . El único cambio importante que existe en 7.X desde que se escribieron esas instrucciones fue que salió 7.2 y si tiene más de 2 GB, no debería tener que agregar las siguientes tres líneas en /boot/loader.conf:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
Las instrucciones también explican cómo crear un espejo y cómo volver a poner el sistema en modo de recuperación (montar con ZFS). Después de jugar con sus instrucciones una o dos veces, utilicé el manual de administración de ZFS de Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf para comprender mejor qué era ZFS. Para crear mi almacén de datos, utilicé una versión modificada del comando en la página 91 para crear grupos de ZFS. Siendo FreeBSD, tuve que hacer un pequeño cambio:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Donde ad4-ad10 se encuentra haciendo dmesg | grep 'ata. * Master', estos son los nombres de los discos duros SATA en el sistema que se utilizarán para la partición de big data. En mi placa base, los primeros tres puertos ata (ad0-3) donde los 4 puertos PATA y luego porque cada puerto SATA es un maestro, no hay números antiguos.
Para crear el sistema de archivos, acabo de hacer:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
El segundo comando es obligatorio porque desactivé los puntos de montaje predeterminados para los recursos compartidos.
Introducción: finalmente construí mi sistema, y aquí están mis notas, en caso de que ayude a alguien más.
Metas:
Especificaciones:
Diseño:
Utilizamos ZFS como sistema de archivos, ya que ha recibido críticas tan favorables. ZFS prácticamente requiere que ejecutemos un sistema operativo de 64 bits, y le gusta mucha memoria, por lo que debería obtener un mínimo de 4 Gb
Hardware:
ABS Aplus ABS-CS-Monolith Negro SECC Steel ATX Full Tower Carcasa para computadora - 1 @ $ 69.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green WD5000AADS 500GB SATA 3.0Gb / s 3.5 "Disco duro 6 @ $ 347.94 ($ 57.99 ea) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 Ventilador de caja LED de 4 LED de 120 mm y blanco - 1 @ $ 8.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
Unidad de DVD-ROM IDE negra LITE-ON Modelo iHDP118-08 - 1 @ $ 19.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Crucial 4GB (2 x 2GB) 240-pin DDR2 SDRAM DDR2 800 (PC2 6400) CT2KIT25664AA800 - 1 @ $ 45.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
GIGABYTE GA-MA74GM-S2 AM2 + / AM2 AMD 740G Micro ATX AMD Placa madre - 1 @ $ 54.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
OKGEAR 18 "SATA II Cable Modelo GC18ATASM12 - 6 @ $ 11.94 ($ 1.99 ea) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e Brisbane 2.6GHz Socket AM2 45W Procesador de doble núcleo Modelo ADH5050DOBOX - 1 @ $ 62.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
Fuente de alimentación KINGWIN Mach 1 ABT-1000MA1S 1000W ATX / BTX - 1 @ $ 199.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
Unidad Seagate IDE de 400 GB: 1 @ (tenía en el armario), pero las unidades IDE de 80 GB cuestan alrededor de $ 37.00 y 80 GB es más que suficiente.
Soporte adaptador para disco duro IDE para caber en una bahía de cinco pulgadas - 1 @ ~ $ 17.00
Envío - 1 @ ~ $ 35.00
Software: FreeBSD 7.2 - 1 @ $ 0.00 http://www.freebsd.org/
Costo total: $ 874.81
Configuración de hardware: una compilación básica de la computadora, con tres problemas menores.
El estuche que compré tenía ranuras para 6 discos duros y dos bahías de 3.5. Supuse que el IDE podría caber en una de las 3.5 bahías. Esta fue una mala suposición, y no había una forma razonable de hacerlo funcionar. Fui y compré un adaptador en Fry's por ~ $ 17.00, y funcionó bien.
Los cables Sata que compré tenían los conectores de 90 grados, lo cual era bueno, excepto que con seis unidades, no había forma de hacer el trabajo. Al enchufar un cable, la parte inflexible del conector se cuelga sobre el siguiente disco duro. Tuve que ir a Fry's y por 5 cables SATA regulares. Lamentablemente, los que compré en Newegg eran tan baratos que no vale la pena devolverlos.
La caja apunta la parte posterior de los discos duros al costado de la caja, y los cables de alimentación de la fuente de alimentación tienen un conector rígido que sobresale por el borde de la caja. Esto no me permitió volver a colocar la cubierta lateral en su lugar. Tuve que jugar un poco para que funcionara, y finalmente terminé con los dos cables de alimentación modulares (tienen cuatro enchufes SATA en cada uno) intercalados entre las unidades, de modo que las primeras unidades alimentadas por cable 0, 2, y 4, y el segundo con potencia 1, 3 y 5. Esto permitió suficiente flexión para que yo pudiera cerrarlos.
Configuración del sistema operativo:
Quemó los ISO de FreeBSD 7.2 en un CD. Podría haber usado el DVD único, pero no tenía nada por ahí.
Quemado memtest86 + ( http://www.memtest.org/ ) en un CD.
Encendió la computadora recién construida y entró en la BIOS para asegurarse de que vio las 7 unidades y el DVD-ROM. Lo hizo. Cambió el orden de arranque para hacer el CDROM primero.
Insertó el CD memtest86 + en la computadora recién construida, lo reinició y lo dejé correr durante la noche. Pasó sin errores.
Instaló FreeBSD 7.2, si no está familiarizado con esto, le recomiendo leer lo siguiente: http://www.freebsd.org/doc/en/books/handbook/install.html Hace un trabajo mucho mejor para explicar qué hacer que yo lata. Aquí están mis configuraciones específicas:
Después de instalar y reiniciar, noté que solo se detectaron 4 de las 6 unidades SATA. Entré en el BIOS y en Periféricos integrados, cambié el tipo de OnChip SATA para que sea AHCI, y el tipo de puerto 4/5 de OnChip SATA para que sea "SATA". Se guardó la configuración y se reinició.
En este punto, FreeBSD detectó las seis unidades como: ad4 ad6 ad8 ad10 ad12 ad14
Obtenga lo último de cvs usando csup: csup -g -L 2 stable-supfile Ya había editado el archivo para usar el host: cvsup11.us.FreeBSD.org dejando toda la otra información como está.
Reconstruí e instalé el kernel y el mundo más recientes como se describe aquí: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Personalicé mi kernel (ver ZFSNAS). Deshabilité un gran conjunto de dispositivos, ya que nunca planeo usar SCSI, USB, PCMCIA, Serial, Paralelo, etc., agregué lo siguiente a /etc/make.conf: CPUTYPE = athlon64 CFLAGS = -O2 -fno-estricto-aliasing -pipe make -j8 buildworld
Configuración de NAS:
Cree el grupo ZFS para nuestro almacenamiento: zpool cree almacenamiento raidz2 ad4 ad6 ad8 ad10 ad12 ad14
Cree el sistema de archivos de inicio en el almacenamiento recién creado:
edite /etc.rc/conf y agregue lo siguiente:
Esto monta los sistemas de archivos ZFS en el arranque.
Creación de directorios raíz, samba y forzada
A menos que necesite más sistemas de archivos en su grupo, ya ha terminado con la parte de ZFS. Consulte lo siguiente para obtener más detalles: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Puertos instalados:
Usuarios agregados:
Grupos creados:
Configuración de samba:
fuente
No veo ninguna razón por la que quiera hacerlo, creo que el soporte de Snapshot solo es lo suficientemente maduro en OpenSolaris para que pueda volver a una versión anterior y arrancar eso (pero eso es solo una suposición descabellada).
Agregar como en expandir un grupo rayado? Simplemente agregue una unidad al grupo, eso es todo. Considera las implicaciones de tu próxima pregunta, tú.
Puede usarlo como una banda y decirle a ZFS que guarde n copias de un archivo. Por lo tanto, podría usar la disponibilidad de almacenamiento total que tiene y aún así obtener una redundancia decente
Reemplazo de dispositivos en un grupo de almacenamiento Supongo que esta es la solución recomendada, la forma más fácil de averiguar qué tan bien funciona en FreeBSD es intentarlo.
¿Ha considerado FreeNAS (Roadmap) 0.70 parece estar a punto de ser lanzado y será compatible con ZFS.
Se ahorrará la molestia de todo el marco y obtendrá una GUI relativamente agradable de usar de forma gratuita con él.
fuente
Tengo servidores con FreeBSD + ZFS (en 7.2-STABLE y 8.0-CURRENT), no en producción tú.
El arranque desde ZFS se describe aquí http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
Agregar unidades sobre la marcha es tan fácil como escribir "zpool add mypool da7", la nueva unidad se puede utilizar inmediatamente después; También puede agregar un montón de unidades en banda, espejo, raidz (raid-5 mejorado) o raidz2 (raid-6 mejorado)
Las unidades de diferentes tamaños se pueden colocar en la piscina, pero no se pueden usar en espejo / banda / banda (si recuerdo correctamente, solo se podrá utilizar el espacio más pequeño en el disco duro)
(Abierto) Solaris admite ZFS desde el primer momento
fuente
Hay un buen hilo sobre la construcción de un NAS ZFS en casa en ArsTechnica.
fuente
No tengo experiencia con ZFS, pero acabo de ver esto en mi alimentador RSS:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
Lo que sugiere que está madurando, pero no está listo para la producción (en FreeBSD).
fuente