Diferencia entre revisiones de «Extender swap»

De jagfloriano.com
Ir a la navegaciónIr a la búsqueda
(Página creada con «== Procedimiento: Extender memoria SWAP en sistemas LVM == === Alcance === Este procedimiento aplica a servidores Linux con SWAP gestionada mediante LVM. Es válido para entornos '''RHEL 7 y RHEL 8'''. Todos los ejemplos se ejecutan como <code>root</code> en el servidor <code>SERVER</code>. --- == Flujo de decisión == # Comprobar si el servidor está usando SWAP # Verificar si hay espacio libre en <code>vg00</code> # Si no hay espacio: ## Verificar si existe <co…»)
 
 
(No se muestra una edición intermedia del mismo usuario)
Línea 1: Línea 1:
== Procedimiento: Extender memoria SWAP en sistemas LVM ==
== Extender memoria SWAP en sistemas LVM ==


=== Alcance ===
=== Alcance ===
Este procedimiento aplica a servidores Linux con SWAP gestionada mediante LVM.
Este procedimiento aplica a servidores Linux con SWAP gestionada mediante LVM.
Es válido para entornos '''RHEL 7 y RHEL 8'''.
Es válido para entornos '''RHEL 7 y RHEL 8'''.
Todos los ejemplos se ejecutan como <code>root</code> en el servidor <code>SERVER</code>.
---


== Flujo de decisión ==
== Flujo de decisión ==
Línea 17: Línea 13:
## Extender <code>vg_swap</code> o crear uno nuevo
## Extender <code>vg_swap</code> o crear uno nuevo
# Extender <code>lv_swap</code> y reactivar SWAP
# Extender <code>lv_swap</code> y reactivar SWAP
---


== 1. Comprobar si el servidor está usando SWAP ==
== 1. Comprobar si el servidor está usando SWAP ==
Línea 25: Línea 19:
Si el servidor está swappeando, es necesario **coordinar una ventana de mantenimiento**
Si el servidor está swappeando, es necesario **coordinar una ventana de mantenimiento**
(aprox. 1 hora), ya que será necesario desactivar la SWAP temporalmente.
(aprox. 1 hora), ya que será necesario desactivar la SWAP temporalmente.
---


=== Servidor SIN uso de SWAP ===
=== Servidor SIN uso de SWAP ===


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
free -h
[root@serverA~]# free -h
            total      used      free    shared    buffers    cached
Mem:          31G        30G      629M      5.2G      493M        25G
-/+ buffers/cache:      4.7G        26G
Swap:          31G        0B        31G
</syntaxhighlight>
</syntaxhighlight>


Salida esperada:
<pre>
Swap: 31G  0B  31G
</pre>


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
swapon -s
[root@serverA~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-0                              partition      2097148  0      -1
/dev/dm-10                              partition      31457276 0      -2
</syntaxhighlight>
</syntaxhighlight>
<pre>
Used: 0
</pre>
---


=== Servidor CON uso de SWAP ===
=== Servidor CON uso de SWAP ===


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
free -h
[root@serverA~]# free -h
            total      used      free    shared    buffers    cached
Mem:          31G        31G      0      5.2G      493M        31G-/+ buffers/cache:      4.7G        26G
Swap:          31G        20B        11G
</syntaxhighlight>
</syntaxhighlight>


<pre>
Swap: 31G  20G  11G
</pre>


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
swapon -s
[root@serverA~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-0                              partition      2097148  2097148  -1
/dev/dm-10                              partition      31457276 18874368  -2
</syntaxhighlight>
</syntaxhighlight>
<pre>
Used > 0
</pre>


⚠️ En este caso, contactar con el propietario del servidor antes de continuar.
⚠️ En este caso, contactar con el propietario del servidor antes de continuar.
---


== 2. Comprobar espacio libre en vg00 ==
== 2. Comprobar espacio libre en vg00 ==


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
vgs
[root@serverA~]# vgs
  VG  #PV #LV #SN Attr  VSize  VFree
  vg00  1  7  0 wz--n- <98.75g <25.92g
</syntaxhighlight>
</syntaxhighlight>
Ejemplo:
<pre>
VG    VSize    VFree
vg00  98.75g  25.92g
</pre>


Comprobar tamaño actual de la SWAP:
Comprobar tamaño actual de la SWAP:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
lvs | grep -i swap
[root@serverA~]# lvs|grep -i swap
  lv_swap  vg00 -wi-ao----  4.41g
</syntaxhighlight>
</syntaxhighlight>


<pre>
lv_swap vg00 4.41g
</pre>
---


== 3. Caso A: Hay espacio suficiente en vg00 ==
== 3. Caso A: Hay espacio suficiente en vg00 ==
Línea 99: Línea 77:
Si existe espacio libre suficiente en <code>vg00</code>, se puede extender directamente
Si existe espacio libre suficiente en <code>vg00</code>, se puede extender directamente
<code>lv_swap</code>.
<code>lv_swap</code>.
---


=== 3.1 Determinar tamaño objetivo ===
=== 3.1 Determinar tamaño objetivo ===
Línea 112: Línea 88:
</pre>
</pre>


---


=== 3.2 Desactivar SWAP ===
=== 3.2 Desactivar SWAP ===


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
swapoff -a
[root@serverA~]# sudo swapoff -a
</syntaxhighlight>
</syntaxhighlight>
---


=== 3.3 Extender lv_swap ===
=== 3.3 Extender lv_swap ===
Línea 127: Línea 100:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
lvextend -L +2G /dev/vg00/lv_swap
[root@serverA~]# sudo lvextend -L +2G /dev/vg00/lv_swap
  Size of logical volume vg00/lv_swap changed from 4.41 GiB (1130 extents) to 6.41 GiB (1642 extents).
  Logical volume vg00/lv_swap successfully resized.
</syntaxhighlight>
</syntaxhighlight>


---
=== 3.4 Recrear firma de SWAP ===


=== 3.4 Re-crear firma de SWAP ===
<syntaxhighlight lang="bash">
[root@serverA~]# mkswap /dev/vg00/lv_swap
mkswap: /dev/vg00/lv_swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 6725628 KiB
no label, UUID=e47b51cb-2cd5-45aa-b3f4-0826bfb1c38d
</syntaxhighlight>


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mkswap /dev/vg00/lv_swap
[root@serverA~]# blkid |grep -i swap
/dev/mapper/vg00-lv_swap: UUID="e47b51cb-2cd5-45aa-b3f4-0826bfb1c38d" TYPE="swap"
</syntaxhighlight>
</syntaxhighlight>
---


=== 3.5 Verificar /etc/fstab ===
=== 3.5 Verificar /etc/fstab ===
Línea 147: Línea 126:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
grep swap /etc/fstab
[root@serverA~]# cat /etc/fstab | grep swap
/dev/mapper/vg00-lv_swap      swap                    swap    defaults        0 0
</syntaxhighlight>
</syntaxhighlight>


---


=== 3.6 Reactivar SWAP ===
=== 3.6 Reactivar SWAP ===


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
swapon -a
[root@serverA~]# swapon -a
</syntaxhighlight>
</syntaxhighlight>


Línea 161: Línea 140:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
free -g | grep -i swap
[root@serverA~]# free -g | grep -i swap
</syntaxhighlight>
Swap:             6           0           6
 
---
 
== 4. Caso B: NO hay espacio libre en vg00 ==
 
---
 
=== 4.1 Verificar si existe vg_swap ===
 
<syntaxhighlight lang="bash">
vgs | grep -i vg_swap
</syntaxhighlight>
 
---
 
== 5. Caso B1: vg_swap existe y tiene espacio libre ==
 
Seguir el mismo procedimiento que en el '''Caso A''', usando:
 
<syntaxhighlight lang="bash">
/dev/vg_swap/lv_swap
</syntaxhighlight>
 
---
 
== 6. Caso B2: vg_swap existe pero NO tiene espacio ==
 
Añadir un nuevo disco desde VMware y extender el VG:
 
<syntaxhighlight lang="bash">
vgextend vg_swap /dev/sdX
</syntaxhighlight>
 
(Sustituir <code>/dev/sdX</code> por el disco correspondiente)
 
Continuar con el procedimiento del '''Caso A'''.
 
---
 
== 7. Caso B3: vg_swap NO existe ==
 
---
 
=== 7.1 Crear nuevo VG para SWAP ===
 
<syntaxhighlight lang="bash">
vgcreate vg_swap /dev/sdX
</syntaxhighlight>
 
---
 
=== 7.2 Crear LV de SWAP ===
 
Ejemplo: crear 30 GB de SWAP:
 
<syntaxhighlight lang="bash">
lvcreate -n lv_swap -L 30G vg_swap
</syntaxhighlight>
 
---
 
=== 7.3 Formatear SWAP ===
 
<syntaxhighlight lang="bash">
mkswap /dev/vg_swap/lv_swap
</syntaxhighlight>
 
---
 
=== 7.4 Actualizar /etc/fstab ===
 
Backup previo:
 
<syntaxhighlight lang="bash">
cp /etc/fstab /etc/fstab.BACKUP
</syntaxhighlight>
 
Añadir entrada:
 
<syntaxhighlight lang="bash">
/dev/vg_swap/lv_swap swap swap defaults 0 0
</syntaxhighlight>
</syntaxhighlight>
---
=== 7.5 Activar SWAP ===
<syntaxhighlight lang="bash">
swapon -a
</syntaxhighlight>
Verificar:
<syntaxhighlight lang="bash">
free -g | grep -i swap
</syntaxhighlight>
---
== Resultado esperado ==
* La SWAP refleja el nuevo tamaño
* No hay pérdida de datos
* El sistema continúa operativo
* La configuración persiste tras reinicio
---
== Notas importantes ==
* Nunca extender SWAP sin verificar uso previo
* Siempre desactivar SWAP antes de modificarla
* Validar <code>/etc/fstab</code> antes de finalizar
* Documentar cambios en sistemas productivos

Revisión actual - 17:04 2 ene 2026

Extender memoria SWAP en sistemas LVM[editar]

Alcance[editar]

Este procedimiento aplica a servidores Linux con SWAP gestionada mediante LVM. Es válido para entornos RHEL 7 y RHEL 8.

Flujo de decisión[editar]

  1. Comprobar si el servidor está usando SWAP
  2. Verificar si hay espacio libre en vg00
  3. Si no hay espacio:
    1. Verificar si existe vg_swap
    2. Extender vg_swap o crear uno nuevo
  4. Extender lv_swap y reactivar SWAP

1. Comprobar si el servidor está usando SWAP[editar]

El uso de SWAP indica presión de memoria. Si el servidor está swappeando, es necesario **coordinar una ventana de mantenimiento** (aprox. 1 hora), ya que será necesario desactivar la SWAP temporalmente.

Servidor SIN uso de SWAP[editar]

[root@serverA~]# free -h
             total       used       free     shared    buffers     cached
Mem:           31G        30G       629M       5.2G       493M        25G
-/+ buffers/cache:       4.7G        26G
Swap:          31G         0B        31G


[root@serverA~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-0                               partition       2097148  0       -1
/dev/dm-10                              partition       31457276 0       -2

Servidor CON uso de SWAP[editar]

[root@serverA~]# free -h
             total       used       free     shared    buffers     cached
Mem:           31G        31G       0      5.2G       493M        31G-/+ buffers/cache:       4.7G        26G
Swap:          31G         20B        11G


[root@serverA~]# swapon -s
Filename                                Type            Size     Used    Priority
/dev/dm-0                               partition       2097148  2097148   -1
/dev/dm-10                              partition       31457276 18874368  -2

⚠️ En este caso, contactar con el propietario del servidor antes de continuar.

2. Comprobar espacio libre en vg00[editar]

[root@serverA~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg00   1   7   0 wz--n- <98.75g <25.92g

Comprobar tamaño actual de la SWAP:

[root@serverA~]# lvs|grep -i swap
  lv_swap  vg00 -wi-ao----  4.41g


3. Caso A: Hay espacio suficiente en vg00[editar]

Si existe espacio libre suficiente en vg00, se puede extender directamente lv_swap.

3.1 Determinar tamaño objetivo[editar]

Recomendación general:

  • SWAP ≈ 50% de la RAM si no se especifica otro valor

Ejemplo:

RAM: 8G → SWAP recomendada: 4G


3.2 Desactivar SWAP[editar]

[root@serverA~]# sudo swapoff -a

3.3 Extender lv_swap[editar]

Ejemplo: aumentar 2 GB:

[root@serverA~]# sudo lvextend -L +2G /dev/vg00/lv_swap
  Size of logical volume vg00/lv_swap changed from 4.41 GiB (1130 extents) to 6.41 GiB (1642 extents).
  Logical volume vg00/lv_swap successfully resized.

3.4 Recrear firma de SWAP[editar]

[root@serverA~]# mkswap /dev/vg00/lv_swap
mkswap: /dev/vg00/lv_swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 6725628 KiB
no label, UUID=e47b51cb-2cd5-45aa-b3f4-0826bfb1c38d
[root@serverA~]# blkid |grep -i swap
/dev/mapper/vg00-lv_swap: UUID="e47b51cb-2cd5-45aa-b3f4-0826bfb1c38d" TYPE="swap"

3.5 Verificar /etc/fstab[editar]

Puede estar definido por:

  • Ruta del dispositivo
  • UUID
[root@serverA~]# cat /etc/fstab | grep swap
/dev/mapper/vg00-lv_swap      swap                    swap    defaults        0 0


3.6 Reactivar SWAP[editar]

[root@serverA~]# swapon -a

Verificación final:

[root@serverA~]# free -g | grep -i swap
Swap:             6           0           6