102.1 Lección 1
Certificación: |
LPIC-1 |
---|---|
Versión: |
5.0 |
Tema: |
102 Instalación de Linux y Administración de Paquetes |
Objetivo: |
102.1 Diseño de Disco Duro |
Lección: |
1 de 1 |
Introducción
Para tener éxito en este tema, debe comprender la relación entre discos, particiones, sistemas de archivos y volúmenes (disks, partitions, filesystems y volumes).
Piense en un disco (o dispositivo de almacenamiento, ya que los dispositivos modernos no contienen ningún "disco" en absoluto) como un "contenedor físico" para sus datos.
Antes de que un disco pueda ser usado por una computadora, necesita ser particionado. Una partición es un subconjunto lógico del disco físico, como una "cerca" lógica. Particionar es una forma de "compartimentar" la información almacenada en el disco, separando, por ejemplo, los datos del sistema operativo de los datos del usuario.
Cada disco necesita al menos una partición, pero puede tener varias particiones si es necesario, y la información acerca de ellas se almacena en una tabla de particiones. Esta tabla incluye información sobre el primer y último sector de la partición y su tipo, así como más detalles sobre cada partición.
Dentro de cada partición hay un sistema de archivos. El sistema de archivos describe la forma en que la información se almacena realmente en el disco. Esta información incluye cómo están organizados los directorios, cuál es la relación entre ellos, dónde están los datos para cada archivo, etc.
Las particiones no pueden abarcar varios discos. Pero al usar el Logical Volume Manager (LVM) se pueden combinar varias particiones, incluso a través de discos, para formar un único volumen lógico.
Los volúmenes lógicos eliminan las limitaciones de los dispositivos físicos y le permiten trabajar con "grupos" de espacio en disco que se pueden combinar o distribuir de una manera mucho más flexible que las particiones tradicionales. LVM es útil en situaciones en las que necesitaría agregar más espacio a una partición sin tener que migrar los datos a un dispositivo más grande.
En este tema aprenderá cómo diseñar un esquema de partición de disco para un sistema Linux, asignando sistemas de archivos e intercambiando espacio para separar particiones o discos cuando sea necesario.
En otros temas se discutirá cómo crear y
administrar particiones y sistemas de
archivos. Discutiremos una visión general
de LVM aquí, pero una explicación más
detallada está fuera del alcance de este
tema.
Puntos de Montaje
Para poder acceder a un sistema de archivos en Linux, debe estar montado. Esto significa adjuntar el sistema de archivos a un punto específico en el árbol de directorios de su sistema, llamado punto de montaje (mount point).
Cuando esté montado, el contenido del
sistema de archivos estará disponible en
el punto de montaje. Por ejemplo,
imagine que tiene una partición con los
datos personales de sus usuarios (sus
directorios de inicio), que contiene los
directorios /john
, /jack
y /carol
. Cuando se monta
en /home
, el contenido de
esos directorios estará disponible en /home/john
,
/home/jack
y /home/carol
.
El punto de montaje debe existir antes
de montar el sistema de archivos. No
puede montar una partición en /mnt/userdata
si este directorio no existe. Sin
embargo, si el directorio existe y
contiene archivos, esos archivos no
estarán disponibles hasta que desmonte
el sistema de archivos. Si lista los
contenidos del directorio, verá los
archivos almacenados en el sistema de
archivos montado, no los contenidos
originales del directorio.
Los sistemas de archivos se pueden montar en cualquier lugar que desee. Sin embargo, hay algunas buenas prácticas que deben seguirse para facilitar la administración del sistema.
Tradicionalmente, /mnt
era el directorio en el que se montaban
todos los dispositivos externos y una
cantidad de puntos de anclaje
preconfigurados para dispositivos
comunes, como unidades de CD-ROM (/mnt/cdrom
)
y disquetes (/mnt/floppy
).
Esto ha sido reemplazado por /media
,
que ahora es el punto de montaje
predeterminado para cualquier medio
extraíble por el usuario (por ejemplo,
discos externos, unidades flash USB,
lectores de tarjetas de memoria, discos
ópticos, etc.) conectados al sistema.
En la mayoría de las distribuciones
modernas de Linux y entornos de
escritorio, los dispositivos extraíbles
se montan automáticamente en /media/USER/LABEL
cuando se conectan al sistema, donde USER
es el nombre de usuario y LABEL
es la etiqueta del dispositivo. Por
ejemplo, una unidad flash USB con la
etiqueta FlashDrive
conectada por el usuario john
se montaría en /media/john/FlashDrive/
.
La forma en que se maneja esto es
diferente según el entorno de
escritorio.
Dicho esto, cada vez que necesite manualmente
montar un sistema de archivos, es una
buena práctica montarlo en /mnt
.
Los comandos específicos para controlar
el montaje y desmontaje de sistemas de
archivos en Linux se analizarán en un
próximo tema.
Manteniendo las cosas separadas
En Linux, hay algunos directorios que
deberían mantenerse en particiones
separadas. Hay muchas razones para esto:
por ejemplo, al mantener los archivos
relacionados con el gestor de arranque
(almacenados en /boot
) en
una partición de arranque, se asegura de
que su sistema aún pueda arrancar en
caso de un bloqueo en el sistema de
archivos raíz.
Mantener los directorios personales del
usuario (en /home
) en una
partición separada facilita la
reinstalación del sistema sin el riesgo
de tocar accidentalmente los datos del
usuario. Mantener los datos relacionados
con un servidor web o de base de datos
(generalmente en /var
) en
una partición separada (o incluso en un
disco separado) facilita la
administración del sistema si necesita
agregar más espacio en disco para esos
casos de uso.
Incluso puede haber razones de
rendimiento para mantener ciertos
directorios en particiones separadas. Es
posible que desee mantener el sistema de
archivos raíz (/
) en una
unidad SSD rápida y directorios más
grandes como /home
y /var
en discos duros más lentos que ofrecen
mucho más espacio por una fracción del
coste.
La
Partición de Arranque (/boot
)
La partición de arranque contiene
archivos utilizados por el gestor de
arranque para cargar el sistema
operativo. En sistemas Linux, el
gestor de arranque suele ser GRUB2 o,
en sistemas más antiguos, GRUB Legacy.
La partición generalmente se monta en
/boot
y sus archivos se
almacenan en /boot/grub
.
Técnicamente, no se necesita una
partición de arranque, ya que en la
mayoría de los casos GRUB puede montar
la partición raíz (/
) y
cargar los archivos desde un
directorio separado /boot
.
Sin embargo, puede desear una partición de arranque separada por seguridad (garantizando que el sistema se inicie incluso en caso de un bloqueo del sistema de archivos raíz), o si desea utilizar un sistema de archivos que el gestor de arranque no puede entender en la partición raíz, o si utiliza un método de cifrado o compresión no compatible.
La partición de arranque suele ser la primera partición del disco. Esto se debe a que el BIOS original de la PC de IBM definió los discos usando cilindros, cabezas y sectores (cylinders, heads y sectors (CHS)), con un máximo de 1024 cilindros, 256 cabezas y 63 sectores, lo que resulta en un tamaño de disco máximo de 528 MB (504 MB en MS-DOS) . Esto significa cualquier cosa más allá de esta marca no sería accesible en los sistemas heredados, a menos que se usara un esquema de direccionamiento de disco diferente (como Logical Block Addressing, LBA).
Por lo tanto, para una máxima compatibilidad, la partición de arranque generalmente se encuentra al comienzo del disco y termina antes del cilindro 1024 (528 MB), asegurando que pase lo que pase, la máquina siempre podrá cargar el núcleo.
Dado que la partición de arranque solo almacena los archivos que necesita el gestor de arranque, el disco RAM inicial y las imágenes del núcleo, puede ser bastante pequeño para los estándares actuales. Un buen tamaño es de alrededor de 300 MB.
La partición del sistema EFI (ESP)
La EFI System Partition (ESP) es utilizada por máquinas basadas en la interfaz de firmware extensible unificada (Unified Extensible Firmware Interface (UEFI)) para almacenar cargadores de arranque e imágenes del núcleo de los sistemas operativos instalados.
Esta partición está formateada en un
sistema de archivos basado en FAT. En
un disco particionado con una tabla de
particiones GUID, tiene un
identificador único global C12A7328-F81F-11D2-BA4B-00A0C93EC93B
.
Si el disco fue formateado bajo el
esquema de partición MBR, la ID de la
partición es 0xEF
.
En las máquinas que ejecutan
Microsoft Windows, esta partición
suele ser la primera en el disco,
aunque esto no es obligatorio. El
sistema operativo crea (o completa) el
ESP después de la instalación, y en un
sistema Linux se monta en /boot/efi
.
La Partición /home
Cada usuario en el sistema tiene un
directorio de inicio para almacenar
archivos personales y preferencias, y
la mayoría de ellos se encuentran en /home
.
Por lo general, el directorio de
inicio es el mismo que el nombre de
usuario, por lo que el usuario John
tendría su directorio en /home/john
.
Sin embargo, hay excepciones. Por
ejemplo, el directorio de inicio para
el usuario raíz es /root
y algunos servicios del sistema pueden
tener usuarios asociados con
directorios de inicio en otros
lugares.
No existe una regla para determinar
el tamaño de una partición para el
directorio /home
(la
partición de inicio). Debe tener en
cuenta la cantidad de usuarios en el
sistema y cómo se utilizará. Un
usuario que solo navega por la web y
procesa textos requerirá menos espacio
que uno que trabaje con la edición de
video, por ejemplo.
Información
Variable (/var
)
Este directorio contiene “datos
variables”, o archivos y directorios
en los que el sistema debe poder
escribir durante su funcionamiento.
Esto incluye registros del sistema (en
/var/log
), archivos
temporales (/var/tmp
) y
datos de aplicaciones en caché (en /var/cache
).
/var/www/html
también es
el directorio predeterminado para los
archivos de datos del servidor web
Apache y /var/lib/mysql
es la ubicación predeterminada para
los archivos de base de datos del
servidor MySQL. Sin embargo, ambos
pueden ser cambiados.
Una buena razón para poner /var
en una partición separada es la
estabilidad. Muchas aplicaciones y
procesos escriben en /var
y subdirectorios, como /var/log
o /var/tmp
. Un proceso
con un comportamiento anormal puede
escribir datos hasta que no quede
espacio libre en el sistema de
archivos.
Si /var
está en /
esto puede desencadenar en un estado
de emergencia del núcleo del sistema
operativo (Kernel Panic) y corrupción
del sistema de archivos, causando una
situación de la que es difícil
recuperarse. Pero si /var
se mantiene en una partición separada,
el sistema de archivos raíz no se verá
afectado.
Al igual que en /home
,
no existe una regla universal para
determinar el tamaño de una partición
para /var
, ya que
variará con la forma en que se utiliza
el sistema. En un sistema doméstico,
puede tomar solo unos pocos gigabytes.
Pero en una base de datos o servidor
web se puede necesitar mucho más
espacio. En tales escenarios, puede
ser conveniente colocar /var
en una partición en un disco diferente
al de la partición raíz, agregando una
capa adicional de protección contra
fallas en el disco físico.
Partición de Intercambio (Swap)
La partición de intercambio se utiliza
para intercambiar páginas de memoria de
RAM a disco según sea necesario. Esta
partición debe ser de un tipo específico
y configurarse con una utilidad adecuada
llamada mkswap
antes de
poder usarse.
La partición de intercambio no se puede montar como las demás, lo que significa que no puede acceder a ella como un directorio normal y echar un vistazo a su contenido.
Un sistema puede tener múltiples particiones de intercambio (aunque esto es poco común) y Linux también admite el uso de archivos de intercambio en lugar de particiones, lo que puede ser útil para aumentar rápidamente el espacio de intercambio cuando sea necesario.
El tamaño de la partición de intercambio es un tema polémico. Es posible que la antigua regla de los primeros días de Linux (“dos veces la cantidad de RAM”) ya no se aplique dependiendo de cómo se esté utilizando el sistema y la cantidad de RAM física instalada.
En la documentación para Red Hat Enterprise Linux 7, Red Hat recomienda lo siguiente:
Cantidad de RAM | Tamaño de intercambio recomendado | Tamaño de intercambio recomendado con hibernación |
---|---|---|
< 2 GB of RAM |
2x cantidad de RAM |
3x cantidad de RAM |
2-8 GB of RAM |
mismo tamaño RAM |
2x cantidad de RAM |
8-64 GB of RAM |
Al menos 4 GB |
1.5x cantidad de RAM |
> 64 GB of RAM |
Al menos 4 GB |
No Recomendado |
Por supuesto, la cantidad de intercambio puede depender de la carga de trabajo. Si la máquina está ejecutando un servicio crítico, como una base de datos, un servidor web o SAP, es aconsejable consultar la documentación de estos servicios (o su proveedor de software) para obtener una recomendación.
Note
|
La información sobre cómo crear y habilitar particiones de intercambio y archivos de intercambio se verá en el tema siguiente. |
LVM
Ya hemos discutido cómo se organizan los discos en una o más particiones, y cada partición contiene un sistema de archivos que describe cómo se almacenan los archivos y los metadatos asociados. Una de las desventajas de la partición es que el administrador del sistema tiene que decidir de antemano cómo se distribuirá el espacio disponible en un dispositivo de almacenamiento. Esto puede presentar algunos desafíos más adelante, si una partición requiere más espacio de lo planeado originalmente. Por supuesto, las particiones pueden redimensionarse, pero esto puede no ser posible si, por ejemplo, no hay espacio libre en el disco.
Logical Volume Management (LVM) es una forma de virtualización de almacenamiento que ofrece a los administradores de sistemas un enfoque más flexible para administrar el espacio en disco que la partición tradicional. El objetivo de LVM es facilitar la gestión de las necesidades de almacenamiento de sus usuarios finales. La unidad básica es el Physical Volume (PV), que es un dispositivo de bloque en su sistema como una partición de disco o un arreglo RAID.
Los PV se agrupan en Grupos de volúmenes (VG) que abstraen los dispositivos subyacentes y se ven como un único dispositivo lógico, con la capacidad de almacenamiento combinada de los componentes del PV.
Cada volumen en un grupo de volúmenes se subdivide en partes de tamaño fijo llamadas extents. Las extensiones en un PV se denominan Physical Extents (PE), mientras que las de un volumen lógico son Logical Extents (LE). En general, cada extensión lógica se asigna a una extensión física, pero esto puede cambiar si se utilizan características como la duplicación de disco.
Los grupos de volúmenes se pueden subdividir en volúmenes lógicos (LV), que funcionan de forma similar a las particiones pero con más flexibilidad.
El tamaño de un volumen lógico, tal como se especificó durante su creación, está definido por el tamaño de las extensiones físicas (4 MB por defecto) multiplicado por el número de extensiones en el volumen. A partir de esto, es fácil comprender que para aumentar un Volumen lógico, por ejemplo, todo lo que el administrador del sistema tiene que hacer es agregar más extensiones del grupo disponible en el Grupo de volúmenes. Del mismo modo, se pueden eliminar extensiones para reducir el LV.
Después de crear un volumen lógico, el
sistema operativo lo ve como un
dispositivo de bloque normal. Se creará
un dispositivo en /dev
,
nombrado como /dev/VGNAME/LVNAME
,
donde VGNAME
es el nombre
del grupo de volúmenes y LVNAME
es el nombre del volumen lógico.
Estos dispositivos pueden formatearse
con el sistema de archivos deseado
utilizando utilidades estándares (como mkfs.ext4
,
por ejemplo) y montarse usando los
métodos habituales, ya sea manualmente
con el comando mount
o
automáticamente agregándolos al archivo
/etc/fstab
.
Ejercicios Guiados
-
En sistemas Linux, ¿dónde se almacenan los archivos para el gestor de arranque GRUB?
-
¿Dónde debe terminar la partición de arranque para garantizar que una PC siempre pueda cargar el kernel?
-
¿Dónde se suele montar la partición EFI?
-
Al montar manualmente un sistema de archivos, ¿en qué directorio se debe montar normalmente?
Ejercicios Exploratorios
-
¿Cuál es la unidad más pequeña dentro de un grupo de volúmenes?
-
¿Cómo se define el tamaño de un volumen lógico?
-
En un disco formateado con el esquema de partición MBR, ¿cuál es el ID de la partición del sistema EFI?
-
Además de las particiones de intercambio, ¿cómo puede aumentar rápidamente el espacio de intercambio en un sistema Linux?
Resumen
En esta lección aprendió sobre el particionado de discos, qué directorios generalmente se mantienen en particiones separadas y por qué se hace esto. Además, discutimos una descripción general de LVM (Logical Volume Management) y cómo puede ofrecer una forma más flexible de asignar sus datos y espacio en disco en comparación con el particionado tradicional.
Se han discutido los siguientes términos y utilidades:
/
-
El sistema de archivos raíz de Linux.
/var
-
La ubicación estándar para "datos variables" , datos que pueden reducirse y crecer con el tiempo.
/home
-
El directorio padre estándar para directorios de inicio de usuarios regulares en un sistema.
/boot
-
La ubicación estándar para los archivos del cargador de arranque, el kernel de Linux y el disco RAM inicial.
- Partición del sistema EFI (ESP)
-
Utilizado por sistemas que tienen UEFI implementado para el almacenamiento de los archivos de arranque del sistema.
- Espacio de intercambio
-
Se utiliza para intercambiar páginas de memoria del núcleo cuando hay un uso intensivo de la RAM.
- Puntos de montaje
-
Ubicaciones de directorios donde se montará un dispositivo (como un disco duro).
- Particiones
-
Divisiones en un disco duro.
Respuestas a los ejercicios guiados
-
En sistemas Linux, ¿dónde se almacenan los archivos para el gestor de arranque GRUB?
En
/boot/grub
. -
¿Dónde debe terminar la partición de arranque para garantizar que una PC siempre pueda cargar el kernel?
Antes del cilindro 1024.
-
¿Dónde se suele montar la partición EFI?
En
/boot/efi
. -
Al montar manualmente un sistema de archivos, ¿en qué directorio se debe montar normalmente?
En
/mnt
. Sin embargo, esto no es obligatorio. Puede montar una partición en cualquier directorio que desee.
Respuestas a ejercicios exploratorios
-
¿Cuál es la unidad más pequeña dentro de un grupo de volúmenes?
Los grupos de volúmenes se subdividen en extensiones (extends).
-
¿Cómo se define el tamaño de un volumen lógico?
Por el tamaño de las extensiones físicas multiplicado por el número de extensiones en el volumen.
-
En un disco formateado con el esquema de partición MBR, ¿cuál es la ID de la partición del sistema EFI?
El ID es
0xEF
. -
Además de las particiones de intercambio, ¿cómo puede aumentar rápidamente el espacio de intercambio en un sistema Linux?
Se pueden usar archivos de intercambio.