Soy un usuario de Fedora Linux que ejecuta yum upgrade
diario. Si bien este hábito me permite ejecutar todo el software más reciente (una de las cuatro bases de Fedora es "primero" y está a la altura de eso), también resalta cualquier incompatibilidad entre la plataforma de almacenamiento ZFS y un nuevo kernel.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Como desarrollador, a veces necesito nuevas funciones de la rama ZFS más reciente. Por ejemplo, ZFS 2.0.0 contiene una característica nueva y emocionante que mejora en gran medida el rendimiento de sincronización de ZVOL, lo cual es fundamental para mí como usuario de KVM. Pero esto significa que si quiero usar la rama 2.0.0, tengo que compilar ZFS yo mismo.
Al principio, solo compilé ZFS manualmente desde su repositorio de Git después de cada actualización del kernel. Si lo olvidé, ZFS no se reconocería en el siguiente arranque. Por suerte, aprendí rápidamente a configurar la compatibilidad con módulos dinámicos del kernel (DKMS) para ZFS. Sin embargo, esta solución no es perfecta. Por un lado, no utiliza el poderoso sistema yum, que puede ayudar a resolver dependencias y actualizaciones. Además, cambiar entre su propio paquete y un paquete ascendente es bastante fácil con yum.
En este artículo, demostraré cómo configurar un repositorio de yum para empaquetar ZFS. La solución tiene dos pasos:
- Cree paquetes RPM desde el repositorio ZFS Git
- Configure un repositorio de yum para alojar los paquetes
Crear paquetes RPM
Para crear paquetes RPM, debe instalar la cadena de herramientas RPM. Yum proporciona grupos para agrupar la instalación de las herramientas:
sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'
Una vez instalados, debe instalar todos los paquetes necesarios para compilar ZFS desde el repositorio ZFS Git. Los paquetes pertenecen a tres grupos:
- Herramientas automáticas para generar archivos de compilación a partir de configuraciones de plataforma
- Bibliotecas para crear herramientas de kernel y de espacio de usuario de ZFS
- Bibliotecas para crear paquetes RPM
sudo dnf install libtool autoconf automake gettext createrepo \
libuuid-devel libblkid-devel openssl-devel libtirpc-devel \
lz4-devel libzstd-devel zlib-devel \
kernel-devel elfutils-libelf-devel \
libaio-devel libattr-devel libudev-devel \
python3-devel libffi-devel
Ahora está listo para crear sus propios paquetes.
Construir OpenZFS
OpenZFS proporciona una excelente infraestructura. Para construirlo:
- Clonar el repositorio con
git
y cambia a la rama/etiqueta que esperas usar. - Ejecute Autotools para generar un archivo MAKE.
- Ejecutar
make rpm
y, si todo funciona, los archivos RPM se colocarán en la carpeta de compilación.
$ git clone --branch=zfs-2.0.0-rc3 https://github.com/openzfs/zfs.git zfs
$ cd zfs
$ ./autogen.sh
$ ./configure
$ make rpm
Configurar un repositorio de yum
En yum, un repositorio es un servidor o ruta local que incluye metadatos y archivos RPM. Un consumidor configura un archivo de configuración INI y el yum
El comando resuelve automáticamente los metadatos y descarga los paquetes correspondientes.
Fedora proporciona el createrepo
herramienta para configurar un repositorio de yum. Primero, cree el repositorio y copie todos los archivos RPM de la carpeta ZFS al repositorio. Luego ejecuta createrepo --update
para incluir todos los paquetes en los metadatos:
$ sudo mkdir -p /var/lib/zfs.repo
$ sudo createrepo /var/lib/zfs.repo
$ sudo cp *.rpm /var/lib/zfs.repo/
$ sudo createrepo --update /var/lib/zfs.repo
Cree un nuevo archivo de configuración en /etc/yum.repos.d
para incluir la ruta del repositorio:
$ echo \
"[zfs-local]\\nname=ZFS Local\\nbaseurl=file:///var/lib/zfs.repo\\nenabled=1\\ngpgcheck=0" |\
sudo tee /etc/yum.repos.d/zfs-local.repo
$ sudo dnf --repo=zfs-local list available --refresh
¡Finalmente, has llegado al final del viaje! Tiene un repositorio de yum en funcionamiento y paquetes ZFS. Ahora solo necesitas instalarlos:
$ sudo dnf install zfs
$ sudo /sbin/modprobe zfs
Ejecute sudo zfs version
para ver la versión de su espacio de usuario y herramientas de kernel. ¡Felicidades! Tienes ZFS para Fedora.