sergio_educacionit

lvm2 html

Aug 26th, 2026
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.27 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.  
  7. <title>LVM2 - Administración de volúmenes</title>
  8.  
  9. <style>
  10. * {
  11. box-sizing: border-box;
  12. }
  13.  
  14. body {
  15. margin: 0;
  16. font-family: Arial, Helvetica, sans-serif;
  17. background: #0f172a;
  18. color: #dbe4f0;
  19. line-height: 1.6;
  20. }
  21.  
  22. header {
  23. background: linear-gradient(135deg, #111827, #1e293b);
  24. border-bottom: 1px solid #334155;
  25. padding: 55px 20px;
  26. text-align: center;
  27. }
  28.  
  29. header h1 {
  30. margin: 0;
  31. font-size: 3rem;
  32. color: #5eead4;
  33. }
  34.  
  35. header p {
  36. max-width: 750px;
  37. margin: 15px auto 0;
  38. color: #94a3b8;
  39. font-size: 1.1rem;
  40. }
  41.  
  42. main {
  43. max-width: 950px;
  44. margin: auto;
  45. padding: 40px 20px 80px;
  46. }
  47.  
  48. section {
  49. background: #111827;
  50. border: 1px solid #263449;
  51. border-radius: 12px;
  52. padding: 28px;
  53. margin-bottom: 25px;
  54. }
  55.  
  56. h2 {
  57. color: #5eead4;
  58. margin-top: 0;
  59. border-bottom: 1px solid #334155;
  60. padding-bottom: 10px;
  61. }
  62.  
  63. h3 {
  64. color: #93c5fd;
  65. }
  66.  
  67. code {
  68. color: #86efac;
  69. font-family: Consolas, monospace;
  70. }
  71.  
  72. pre {
  73. background: #020617;
  74. border: 1px solid #334155;
  75. border-radius: 8px;
  76. padding: 16px;
  77. overflow-x: auto;
  78. color: #e2e8f0;
  79. }
  80.  
  81. .idea {
  82. background: #132238;
  83. border-left: 4px solid #38bdf8;
  84. padding: 15px 18px;
  85. margin: 20px 0;
  86. border-radius: 5px;
  87. }
  88.  
  89. .warning {
  90. background: #2b2113;
  91. border-left: 4px solid #fbbf24;
  92. padding: 15px 18px;
  93. margin: 20px 0;
  94. border-radius: 5px;
  95. }
  96.  
  97. .diagram {
  98. display: flex;
  99. gap: 10px;
  100. flex-wrap: wrap;
  101. align-items: center;
  102. justify-content: center;
  103. margin: 30px 0;
  104. }
  105.  
  106. .box {
  107. padding: 18px 22px;
  108. border-radius: 8px;
  109. border: 2px solid #475569;
  110. background: #172033;
  111. text-align: center;
  112. min-width: 130px;
  113. }
  114.  
  115. .pv {
  116. border-color: #38bdf8;
  117. }
  118.  
  119. .vg {
  120. border-color: #c084fc;
  121. }
  122.  
  123. .lv {
  124. border-color: #4ade80;
  125. }
  126.  
  127. .arrow {
  128. font-size: 1.8rem;
  129. color: #64748b;
  130. }
  131.  
  132. table {
  133. width: 100%;
  134. border-collapse: collapse;
  135. margin-top: 20px;
  136. }
  137.  
  138. th, td {
  139. padding: 12px;
  140. border: 1px solid #334155;
  141. text-align: left;
  142. }
  143.  
  144. th {
  145. background: #1e293b;
  146. color: #f8fafc;
  147. }
  148.  
  149. footer {
  150. text-align: center;
  151. color: #64748b;
  152. padding: 30px;
  153. }
  154. </style>
  155. </head>
  156.  
  157. <body>
  158.  
  159. <header>
  160. <h1>LVM2</h1>
  161.  
  162. <p>
  163. Administración flexible de almacenamiento en Linux mediante
  164. Physical Volumes, Volume Groups y Logical Volumes.
  165. </p>
  166. </header>
  167.  
  168. <main>
  169.  
  170. <section>
  171.  
  172. <h2>¿Qué es LVM2?</h2>
  173.  
  174. <p>
  175. LVM significa <strong>Logical Volume Manager</strong>. Es una capa de
  176. administración de almacenamiento que permite separar los filesystems de
  177. los discos físicos sobre los que finalmente se almacenan los datos.
  178. </p>
  179.  
  180. <p>
  181. En un esquema tradicional se puede crear un filesystem directamente sobre
  182. un dispositivo como <code>/dev/sdb</code> o una partición como
  183. <code>/dev/sdb1</code>. Con LVM se agrega una capa intermedia que permite
  184. administrar ese espacio de una forma más flexible.
  185. </p>
  186.  
  187. <div class="idea">
  188. La principal ventaja de LVM es que el tamaño de un volumen lógico puede
  189. modificarse posteriormente y que un mismo conjunto de almacenamiento puede
  190. estar formado por varios discos físicos.
  191. </div>
  192.  
  193. </section>
  194.  
  195.  
  196. <section>
  197.  
  198. <h2>Estructura de LVM</h2>
  199.  
  200. <div class="diagram">
  201.  
  202. <div class="box">
  203. Disco<br>
  204. <code>/dev/sdb</code>
  205. </div>
  206.  
  207. <div class="arrow">→</div>
  208.  
  209. <div class="box pv">
  210. PV<br>
  211. Physical Volume
  212. </div>
  213.  
  214. <div class="arrow">→</div>
  215.  
  216. <div class="box vg">
  217. VG<br>
  218. Volume Group
  219. </div>
  220.  
  221. <div class="arrow">→</div>
  222.  
  223. <div class="box lv">
  224. LV<br>
  225. Logical Volume
  226. </div>
  227.  
  228. <div class="arrow">→</div>
  229.  
  230. <div class="box">
  231. Filesystem
  232. </div>
  233.  
  234. </div>
  235.  
  236.  
  237. <h3>Physical Volume (PV)</h3>
  238.  
  239. <p>
  240. Un <strong>Physical Volume</strong> es un dispositivo de bloques preparado
  241. para ser utilizado por LVM. Puede ser, por ejemplo, un disco completo o una
  242. partición.
  243. </p>
  244.  
  245. <pre>/dev/sdb</pre>
  246.  
  247.  
  248. <h3>Volume Group (VG)</h3>
  249.  
  250. <p>
  251. Un <strong>Volume Group</strong> agrupa el espacio proporcionado por uno o
  252. más Physical Volumes. Se puede pensar como un depósito común de espacio
  253. desde donde posteriormente se crean los volúmenes.
  254. </p>
  255.  
  256. <pre>vg_data</pre>
  257.  
  258.  
  259. <h3>Logical Volume (LV)</h3>
  260.  
  261. <p>
  262. Un <strong>Logical Volume</strong> es un volumen creado utilizando una parte
  263. del espacio disponible dentro de un Volume Group. Para el sistema funciona
  264. como un dispositivo de bloques sobre el cual se puede crear un filesystem.
  265. </p>
  266.  
  267. <pre>lv_mysql</pre>
  268.  
  269. </section>
  270.  
  271.  
  272. <section>
  273.  
  274. <h2>Crear una estructura LVM</h2>
  275.  
  276. <p>
  277. Supongamos que se agregó al servidor un nuevo disco identificado como
  278. <code>/dev/sdb</code>.
  279. </p>
  280.  
  281. <h3>Ver dispositivos</h3>
  282.  
  283. <pre>$ lsblk</pre>
  284.  
  285.  
  286. <h3>Crear Physical Volume</h3>
  287.  
  288. <pre>$ sudo pvcreate /dev/sdb</pre>
  289.  
  290. <p>
  291. El dispositivo queda preparado para ser administrado por LVM.
  292. </p>
  293.  
  294.  
  295. <h3>Crear Volume Group</h3>
  296.  
  297. <pre>$ sudo vgcreate vg_data /dev/sdb</pre>
  298.  
  299. <p>
  300. Se crea el Volume Group <code>vg_data</code> utilizando el espacio
  301. proporcionado por <code>/dev/sdb</code>.
  302. </p>
  303.  
  304.  
  305. <h3>Crear Logical Volume</h3>
  306.  
  307. <pre>$ sudo lvcreate -L 10G -n lv_mysql vg_data</pre>
  308.  
  309. <p>
  310. Se crea un volumen lógico de 10 GB llamado <code>lv_mysql</code>.
  311. </p>
  312.  
  313. <p>
  314. El dispositivo queda disponible normalmente como:
  315. </p>
  316.  
  317. <pre>/dev/vg_data/lv_mysql</pre>
  318.  
  319. </section>
  320.  
  321.  
  322. <section>
  323.  
  324. <h2>Crear el filesystem</h2>
  325.  
  326. <p>
  327. El Logical Volume es un dispositivo de bloques, pero todavía no contiene
  328. una estructura para almacenar archivos y directorios. Por lo tanto se debe
  329. crear un filesystem.
  330. </p>
  331.  
  332. <h3>Crear XFS</h3>
  333.  
  334. <pre>$ sudo mkfs.xfs /dev/vg_data/lv_mysql</pre>
  335.  
  336. <h3>Consultar</h3>
  337.  
  338. <pre>$ lsblk -f</pre>
  339.  
  340. </section>
  341.  
  342.  
  343. <section>
  344.  
  345. <h2>Punto de montaje</h2>
  346.  
  347. <p>
  348. El filesystem creado sobre el Logical Volume debe asociarse con un
  349. directorio del sistema.
  350. </p>
  351.  
  352. <pre>$ sudo mkdir -p /var/lib/mysql
  353.  
  354. $ sudo mount /dev/vg_data/lv_mysql /var/lib/mysql</pre>
  355.  
  356. <p>
  357. A partir de ese momento, todo lo almacenado dentro de
  358. <code>/var/lib/mysql</code> se escribirá en el Logical Volume.
  359. </p>
  360.  
  361. </section>
  362.  
  363.  
  364. <section>
  365.  
  366. <h2>Montaje permanente con /etc/fstab</h2>
  367.  
  368. <p>
  369. El montaje realizado con <code>mount</code> es temporal y desaparece después
  370. de reiniciar el sistema. Para realizar el montaje automáticamente durante
  371. el arranque se utiliza <code>/etc/fstab</code>.
  372. </p>
  373.  
  374. <p>Consultar el UUID:</p>
  375.  
  376. <pre>$ lsblk -f</pre>
  377.  
  378. <p>Ejemplo:</p>
  379.  
  380. <pre>UUID=8481ec5c-d45b-4e9e-8442-8c725dda2b27 /var/lib/mysql xfs defaults 0 0</pre>
  381.  
  382. </section>
  383.  
  384.  
  385. <section>
  386.  
  387. <h2>Consultar LVM</h2>
  388.  
  389. <table>
  390.  
  391. <tr>
  392. <th>Comando</th>
  393. <th>Función</th>
  394. </tr>
  395.  
  396. <tr>
  397. <td><code>pvs</code></td>
  398. <td>Muestra los Physical Volumes.</td>
  399. </tr>
  400.  
  401. <tr>
  402. <td><code>vgs</code></td>
  403. <td>Muestra los Volume Groups.</td>
  404. </tr>
  405.  
  406. <tr>
  407. <td><code>lvs</code></td>
  408. <td>Muestra los Logical Volumes.</td>
  409. </tr>
  410.  
  411. <tr>
  412. <td><code>pvdisplay</code></td>
  413. <td>Muestra información detallada de los PV.</td>
  414. </tr>
  415.  
  416. <tr>
  417. <td><code>vgdisplay</code></td>
  418. <td>Muestra información detallada de los VG.</td>
  419. </tr>
  420.  
  421. <tr>
  422. <td><code>lvdisplay</code></td>
  423. <td>Muestra información detallada de los LV.</td>
  424. </tr>
  425.  
  426. </table>
  427.  
  428. </section>
  429.  
  430.  
  431. <section>
  432.  
  433. <h2>Agregar otro disco</h2>
  434.  
  435. <p>
  436. Un Volume Group puede contener espacio proveniente de varios Physical
  437. Volumes. Si se agrega un nuevo disco <code>/dev/sdc</code>, primero debe
  438. prepararse como PV:
  439. </p>
  440.  
  441. <pre>$ sudo pvcreate /dev/sdc</pre>
  442.  
  443. <p>Luego se incorpora al Volume Group existente:</p>
  444.  
  445. <pre>$ sudo vgextend vg_data /dev/sdc</pre>
  446.  
  447. <p>
  448. El espacio disponible de <code>/dev/sdc</code> pasa a formar parte de
  449. <code>vg_data</code>.
  450. </p>
  451.  
  452. <pre>
  453. /dev/sdb ─┐
  454. ├── vg_data
  455. /dev/sdc ─┘
  456. </pre>
  457.  
  458. </section>
  459.  
  460.  
  461. <section>
  462.  
  463. <h2>Ampliar un Logical Volume</h2>
  464.  
  465. <p>
  466. Si el Volume Group dispone de espacio libre, se puede ampliar un Logical
  467. Volume existente.
  468. </p>
  469.  
  470. <p>Añadir 5 GB:</p>
  471.  
  472. <pre>$ sudo lvextend -L +5G /dev/vg_data/lv_mysql</pre>
  473.  
  474. <p>
  475. Este comando amplía el dispositivo lógico. Después también debe ampliarse
  476. el filesystem para que pueda utilizar el nuevo espacio.
  477. </p>
  478.  
  479. <h3>XFS</h3>
  480.  
  481. <pre>$ sudo xfs_growfs /var/lib/mysql</pre>
  482.  
  483. <div class="idea">
  484. El Logical Volume y el filesystem son dos capas diferentes. Aumentar el
  485. tamaño del LV no significa necesariamente que el filesystem haya aumentado
  486. automáticamente.
  487. </div>
  488.  
  489. <p>
  490. También se puede pedir a <code>lvextend</code> que intente ampliar ambas
  491. capas:
  492. </p>
  493.  
  494. <pre>$ sudo lvextend -r -L +5G /dev/vg_data/lv_mysql</pre>
  495.  
  496. </section>
  497.  
  498.  
  499. <section>
  500.  
  501. <h2>Reducción de volúmenes</h2>
  502.  
  503. <p>
  504. Reducir un volumen es más delicado que ampliarlo, porque primero debe
  505. asegurarse que el filesystem pueda reducirse y que los datos existentes
  506. entren dentro del nuevo tamaño.
  507. </p>
  508.  
  509. <div class="warning">
  510. XFS puede ampliarse, pero no puede reducirse. Por lo tanto, un Logical
  511. Volume que contiene XFS no debe reducirse directamente con
  512. <code>lvreduce</code>.
  513. </div>
  514.  
  515. <p>
  516. En estos casos normalmente se crea un nuevo filesystem de menor tamaño,
  517. se copian los datos y posteriormente se reemplaza el volumen anterior.
  518. </p>
  519.  
  520. </section>
  521.  
  522.  
  523. <section>
  524.  
  525. <h2>Eliminar una estructura LVM</h2>
  526.  
  527. <p>
  528. La eliminación debe realizarse desde la capa superior hacia la inferior.
  529. Primero se desmonta el filesystem y luego se eliminan LV, VG y PV.
  530. </p>
  531.  
  532. <pre>$ sudo umount /var/lib/mysql
  533.  
  534. $ sudo lvremove /dev/vg_data/lv_mysql
  535.  
  536. $ sudo vgremove vg_data
  537.  
  538. $ sudo pvremove /dev/sdb</pre>
  539.  
  540. <div class="warning">
  541. Los comandos de eliminación destruyen la estructura de almacenamiento.
  542. Antes de utilizarlos se debe verificar que los datos ya no sean necesarios
  543. o que exista una copia válida.
  544. </div>
  545.  
  546. </section>
  547.  
  548.  
  549. <section>
  550.  
  551. <h2>Resumen conceptual</h2>
  552.  
  553. <pre>
  554. Dispositivo físico
  555. │
  556. ▼
  557. Physical Volume (PV)
  558. │
  559. ▼
  560. Volume Group (VG)
  561. │
  562. ├──────── espacio disponible
  563. │
  564. ▼
  565. Logical Volume (LV)
  566. │
  567. ▼
  568. Filesystem
  569. │
  570. ▼
  571. Punto de montaje
  572. </pre>
  573.  
  574. <p>
  575. LVM permite que la organización lógica del almacenamiento no dependa
  576. directamente de la estructura física de un único disco. Esta separación
  577. facilita agregar almacenamiento y modificar el tamaño de los volúmenes
  578. según cambien las necesidades del servidor.
  579. </p>
  580.  
  581. </section>
  582.  
  583. </main>
  584.  
  585. <footer>
  586. LVM2 · Administración de sistemas Linux
  587. </footer>
  588.  
  589. </body>
  590. </html>
Advertisement
Add Comment
Please, Sign In to add comment