Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="es">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>LVM2 - Administración de volúmenes</title>
- <style>
- * {
- box-sizing: border-box;
- }
- body {
- margin: 0;
- font-family: Arial, Helvetica, sans-serif;
- background: #0f172a;
- color: #dbe4f0;
- line-height: 1.6;
- }
- header {
- background: linear-gradient(135deg, #111827, #1e293b);
- border-bottom: 1px solid #334155;
- padding: 55px 20px;
- text-align: center;
- }
- header h1 {
- margin: 0;
- font-size: 3rem;
- color: #5eead4;
- }
- header p {
- max-width: 750px;
- margin: 15px auto 0;
- color: #94a3b8;
- font-size: 1.1rem;
- }
- main {
- max-width: 950px;
- margin: auto;
- padding: 40px 20px 80px;
- }
- section {
- background: #111827;
- border: 1px solid #263449;
- border-radius: 12px;
- padding: 28px;
- margin-bottom: 25px;
- }
- h2 {
- color: #5eead4;
- margin-top: 0;
- border-bottom: 1px solid #334155;
- padding-bottom: 10px;
- }
- h3 {
- color: #93c5fd;
- }
- code {
- color: #86efac;
- font-family: Consolas, monospace;
- }
- pre {
- background: #020617;
- border: 1px solid #334155;
- border-radius: 8px;
- padding: 16px;
- overflow-x: auto;
- color: #e2e8f0;
- }
- .idea {
- background: #132238;
- border-left: 4px solid #38bdf8;
- padding: 15px 18px;
- margin: 20px 0;
- border-radius: 5px;
- }
- .warning {
- background: #2b2113;
- border-left: 4px solid #fbbf24;
- padding: 15px 18px;
- margin: 20px 0;
- border-radius: 5px;
- }
- .diagram {
- display: flex;
- gap: 10px;
- flex-wrap: wrap;
- align-items: center;
- justify-content: center;
- margin: 30px 0;
- }
- .box {
- padding: 18px 22px;
- border-radius: 8px;
- border: 2px solid #475569;
- background: #172033;
- text-align: center;
- min-width: 130px;
- }
- .pv {
- border-color: #38bdf8;
- }
- .vg {
- border-color: #c084fc;
- }
- .lv {
- border-color: #4ade80;
- }
- .arrow {
- font-size: 1.8rem;
- color: #64748b;
- }
- table {
- width: 100%;
- border-collapse: collapse;
- margin-top: 20px;
- }
- th, td {
- padding: 12px;
- border: 1px solid #334155;
- text-align: left;
- }
- th {
- background: #1e293b;
- color: #f8fafc;
- }
- footer {
- text-align: center;
- color: #64748b;
- padding: 30px;
- }
- </style>
- </head>
- <body>
- <header>
- <h1>LVM2</h1>
- <p>
- Administración flexible de almacenamiento en Linux mediante
- Physical Volumes, Volume Groups y Logical Volumes.
- </p>
- </header>
- <main>
- <section>
- <h2>¿Qué es LVM2?</h2>
- <p>
- LVM significa <strong>Logical Volume Manager</strong>. Es una capa de
- administración de almacenamiento que permite separar los filesystems de
- los discos físicos sobre los que finalmente se almacenan los datos.
- </p>
- <p>
- En un esquema tradicional se puede crear un filesystem directamente sobre
- un dispositivo como <code>/dev/sdb</code> o una partición como
- <code>/dev/sdb1</code>. Con LVM se agrega una capa intermedia que permite
- administrar ese espacio de una forma más flexible.
- </p>
- <div class="idea">
- La principal ventaja de LVM es que el tamaño de un volumen lógico puede
- modificarse posteriormente y que un mismo conjunto de almacenamiento puede
- estar formado por varios discos físicos.
- </div>
- </section>
- <section>
- <h2>Estructura de LVM</h2>
- <div class="diagram">
- <div class="box">
- Disco<br>
- <code>/dev/sdb</code>
- </div>
- <div class="arrow">→</div>
- <div class="box pv">
- PV<br>
- Physical Volume
- </div>
- <div class="arrow">→</div>
- <div class="box vg">
- VG<br>
- Volume Group
- </div>
- <div class="arrow">→</div>
- <div class="box lv">
- LV<br>
- Logical Volume
- </div>
- <div class="arrow">→</div>
- <div class="box">
- Filesystem
- </div>
- </div>
- <h3>Physical Volume (PV)</h3>
- <p>
- Un <strong>Physical Volume</strong> es un dispositivo de bloques preparado
- para ser utilizado por LVM. Puede ser, por ejemplo, un disco completo o una
- partición.
- </p>
- <pre>/dev/sdb</pre>
- <h3>Volume Group (VG)</h3>
- <p>
- Un <strong>Volume Group</strong> agrupa el espacio proporcionado por uno o
- más Physical Volumes. Se puede pensar como un depósito común de espacio
- desde donde posteriormente se crean los volúmenes.
- </p>
- <pre>vg_data</pre>
- <h3>Logical Volume (LV)</h3>
- <p>
- Un <strong>Logical Volume</strong> es un volumen creado utilizando una parte
- del espacio disponible dentro de un Volume Group. Para el sistema funciona
- como un dispositivo de bloques sobre el cual se puede crear un filesystem.
- </p>
- <pre>lv_mysql</pre>
- </section>
- <section>
- <h2>Crear una estructura LVM</h2>
- <p>
- Supongamos que se agregó al servidor un nuevo disco identificado como
- <code>/dev/sdb</code>.
- </p>
- <h3>Ver dispositivos</h3>
- <pre>$ lsblk</pre>
- <h3>Crear Physical Volume</h3>
- <pre>$ sudo pvcreate /dev/sdb</pre>
- <p>
- El dispositivo queda preparado para ser administrado por LVM.
- </p>
- <h3>Crear Volume Group</h3>
- <pre>$ sudo vgcreate vg_data /dev/sdb</pre>
- <p>
- Se crea el Volume Group <code>vg_data</code> utilizando el espacio
- proporcionado por <code>/dev/sdb</code>.
- </p>
- <h3>Crear Logical Volume</h3>
- <pre>$ sudo lvcreate -L 10G -n lv_mysql vg_data</pre>
- <p>
- Se crea un volumen lógico de 10 GB llamado <code>lv_mysql</code>.
- </p>
- <p>
- El dispositivo queda disponible normalmente como:
- </p>
- <pre>/dev/vg_data/lv_mysql</pre>
- </section>
- <section>
- <h2>Crear el filesystem</h2>
- <p>
- El Logical Volume es un dispositivo de bloques, pero todavía no contiene
- una estructura para almacenar archivos y directorios. Por lo tanto se debe
- crear un filesystem.
- </p>
- <h3>Crear XFS</h3>
- <pre>$ sudo mkfs.xfs /dev/vg_data/lv_mysql</pre>
- <h3>Consultar</h3>
- <pre>$ lsblk -f</pre>
- </section>
- <section>
- <h2>Punto de montaje</h2>
- <p>
- El filesystem creado sobre el Logical Volume debe asociarse con un
- directorio del sistema.
- </p>
- <pre>$ sudo mkdir -p /var/lib/mysql
- $ sudo mount /dev/vg_data/lv_mysql /var/lib/mysql</pre>
- <p>
- A partir de ese momento, todo lo almacenado dentro de
- <code>/var/lib/mysql</code> se escribirá en el Logical Volume.
- </p>
- </section>
- <section>
- <h2>Montaje permanente con /etc/fstab</h2>
- <p>
- El montaje realizado con <code>mount</code> es temporal y desaparece después
- de reiniciar el sistema. Para realizar el montaje automáticamente durante
- el arranque se utiliza <code>/etc/fstab</code>.
- </p>
- <p>Consultar el UUID:</p>
- <pre>$ lsblk -f</pre>
- <p>Ejemplo:</p>
- <pre>UUID=8481ec5c-d45b-4e9e-8442-8c725dda2b27 /var/lib/mysql xfs defaults 0 0</pre>
- </section>
- <section>
- <h2>Consultar LVM</h2>
- <table>
- <tr>
- <th>Comando</th>
- <th>Función</th>
- </tr>
- <tr>
- <td><code>pvs</code></td>
- <td>Muestra los Physical Volumes.</td>
- </tr>
- <tr>
- <td><code>vgs</code></td>
- <td>Muestra los Volume Groups.</td>
- </tr>
- <tr>
- <td><code>lvs</code></td>
- <td>Muestra los Logical Volumes.</td>
- </tr>
- <tr>
- <td><code>pvdisplay</code></td>
- <td>Muestra información detallada de los PV.</td>
- </tr>
- <tr>
- <td><code>vgdisplay</code></td>
- <td>Muestra información detallada de los VG.</td>
- </tr>
- <tr>
- <td><code>lvdisplay</code></td>
- <td>Muestra información detallada de los LV.</td>
- </tr>
- </table>
- </section>
- <section>
- <h2>Agregar otro disco</h2>
- <p>
- Un Volume Group puede contener espacio proveniente de varios Physical
- Volumes. Si se agrega un nuevo disco <code>/dev/sdc</code>, primero debe
- prepararse como PV:
- </p>
- <pre>$ sudo pvcreate /dev/sdc</pre>
- <p>Luego se incorpora al Volume Group existente:</p>
- <pre>$ sudo vgextend vg_data /dev/sdc</pre>
- <p>
- El espacio disponible de <code>/dev/sdc</code> pasa a formar parte de
- <code>vg_data</code>.
- </p>
- <pre>
- /dev/sdb ─┐
- ├── vg_data
- /dev/sdc ─┘
- </pre>
- </section>
- <section>
- <h2>Ampliar un Logical Volume</h2>
- <p>
- Si el Volume Group dispone de espacio libre, se puede ampliar un Logical
- Volume existente.
- </p>
- <p>Añadir 5 GB:</p>
- <pre>$ sudo lvextend -L +5G /dev/vg_data/lv_mysql</pre>
- <p>
- Este comando amplía el dispositivo lógico. Después también debe ampliarse
- el filesystem para que pueda utilizar el nuevo espacio.
- </p>
- <h3>XFS</h3>
- <pre>$ sudo xfs_growfs /var/lib/mysql</pre>
- <div class="idea">
- El Logical Volume y el filesystem son dos capas diferentes. Aumentar el
- tamaño del LV no significa necesariamente que el filesystem haya aumentado
- automáticamente.
- </div>
- <p>
- También se puede pedir a <code>lvextend</code> que intente ampliar ambas
- capas:
- </p>
- <pre>$ sudo lvextend -r -L +5G /dev/vg_data/lv_mysql</pre>
- </section>
- <section>
- <h2>Reducción de volúmenes</h2>
- <p>
- Reducir un volumen es más delicado que ampliarlo, porque primero debe
- asegurarse que el filesystem pueda reducirse y que los datos existentes
- entren dentro del nuevo tamaño.
- </p>
- <div class="warning">
- XFS puede ampliarse, pero no puede reducirse. Por lo tanto, un Logical
- Volume que contiene XFS no debe reducirse directamente con
- <code>lvreduce</code>.
- </div>
- <p>
- En estos casos normalmente se crea un nuevo filesystem de menor tamaño,
- se copian los datos y posteriormente se reemplaza el volumen anterior.
- </p>
- </section>
- <section>
- <h2>Eliminar una estructura LVM</h2>
- <p>
- La eliminación debe realizarse desde la capa superior hacia la inferior.
- Primero se desmonta el filesystem y luego se eliminan LV, VG y PV.
- </p>
- <pre>$ sudo umount /var/lib/mysql
- $ sudo lvremove /dev/vg_data/lv_mysql
- $ sudo vgremove vg_data
- $ sudo pvremove /dev/sdb</pre>
- <div class="warning">
- Los comandos de eliminación destruyen la estructura de almacenamiento.
- Antes de utilizarlos se debe verificar que los datos ya no sean necesarios
- o que exista una copia válida.
- </div>
- </section>
- <section>
- <h2>Resumen conceptual</h2>
- <pre>
- Dispositivo físico
- │
- ▼
- Physical Volume (PV)
- │
- ▼
- Volume Group (VG)
- │
- ├──────── espacio disponible
- │
- ▼
- Logical Volume (LV)
- │
- ▼
- Filesystem
- │
- ▼
- Punto de montaje
- </pre>
- <p>
- LVM permite que la organización lógica del almacenamiento no dependa
- directamente de la estructura física de un único disco. Esta separación
- facilita agregar almacenamiento y modificar el tamaño de los volúmenes
- según cambien las necesidades del servidor.
- </p>
- </section>
- </main>
- <footer>
- LVM2 · Administración de sistemas Linux
- </footer>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment