Documentación
Amazon EC2: Cómo ampliar el tamaño de un volumen de raíz existente
Notas:
- A partir de 2019, este es el camino recomendado si desea aumentar el tamaño de su volumen de raíz. La mejor práctica es detener su servidor para la instantánea inicial, pero estrictamente hablando no es necesario.
- Alternativamente, por favor vea el documentación heredada sobre la migración de datos a una nueva instancia (con un volumen mayor). Debe ser relevante.
- Esta página es relevante sólo para EBS AWS EC2 instancias respaldadas. Si su instancia tiene "almacén de la posición"*, se sugiere que usted en su lugar considere mover archivos a su almacenamiento de instancia.
* - "Al almacenamiento de sustancias" sólo está disponible en tamaños de instancia AWS más antiguos. Es decir, versiones anteriores de TurnKey y/o tamaños de instancias AWS más antiguos. Si tiene un servidor v14.2+ TurnKey, seguramente estará respaldado por EBS. Versiones tan lejos como v13.0 probablemente serán EBS respaldado también, pero doble comprobación dentro de la consola AWS para estar seguro, o por favor enviar a la foros indicando la versión TurnKey y el tamaño/tipo AWS Instance.
El problema: el sistema de archivos raíz se está quedando sin espacio
Aquí hay un ejemplo para ilustrar el problema. Alon lanza un servidor Micro a través de la TurnKey Hub. Después de un par de meses Alon nota que el espacio en su sistema de archivos raíz 10GB casi se ha agotado.
# df -h Filesystem Size Used Avail Use% Mounted on udev 486M 0 486M 0% /dev tmpfs 100M 4.1M 96M 5% /run /dev/xvda2 9.8G 9.8G 19M 100% / tmpfs 498M 0 498M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 498M 0 498M 0% /sys/fs/cgroup
El problema es que sólo hay 10 GB en el sistema de archivos raíz del servidor.
¿Cómo aumenta Alon el tamaño de almacenamiento?
Aumentar el tamaño del volumen raíz utilizando AWS Console
Tiempo previsto para completar: 40 minutos a una hora.
Estas instrucciones suponen que su servidor está funcionando desde el TurnKey Hub, pero también requieren el uso de la AWS ConsolaSi no está usando el Hub (o TurnKey para ese asunto) todavía debe ser generalmente relevante, aunque puede desear consultar el AWS docs para más detalles estrictamente relacionados con la consola AWS.
Mientras pueda permitirse una pequeña cantidad de tiempo de inactividad del servidor, entonces, posiblemente, la mejor manera de resolver esto, es ampliar el volumen de raíz a través de la consola AWS. Si no puedes pagarte en cualquier momento, entonces esto puede hacerse en vivo, pero yo diría que los pocos minutos de tiempo de inactividad vale la pena la mente.
Preparándose
Lo primero que hay que hacer es crear una copia de seguridad. Puedes usar TKLBAM para ese propósito, aunque en este caso, recomendaría tomar una "snapshot" (¿así?). Si usted es extremadamente corto en el espacio, TKLBAM puede no ser una opción. Una instantánea le permitirá volver a exactamente donde usted está ahora mismo más rápido y con menos molestias (no es necesario iniciar un nuevo servidor, etc).
Mientras que puede tomar instantáneas de servidores en ejecución, para los propósitos de backup, Amazon recomienda que tome instantáneas de servidores parados. Esto se debe a que existe una (muy delgada) posibilidad de corrupción de datos al tomar una instantánea de un servidor en funcionamiento. Así que a menos que unos minutos de tiempo de inactividad va a ser un problema (y aún entonces), parece que un no cerebro seguir ese consejo.
Si detienes el servidor, desde el Hub. Página de servidores, seleccione su servidor para que la información completa se enrolle y haga clic en Stop.
Una vez que esté listo para tomar una instantánea, todavía en la página Hub Server, busque el enlace de texto que dice "x instantáneas" (donde 'x' es el número de instantáneas que ya ha tomado - será '0' si no has tomado nada antes). Haga clic en eso y en la página que se abre, haga clic en el botón "Crear instantánea" (Crear instantánea). Inicialmente mostrará "0%" y tomará un minuto o 2. Si no ves ningún progreso, intenta refrescar la página. Una vez que esté completo, deberías ver un círculo verde.
Encontrar su servidor TurnKey en AWS Console
Volver a la página de Servidores del Hub (inicie la información del servidor de nuevo si es necesario), busque dónde dice Región y note eso. Ahora, en una nueva pestaña del navegador / ventana abrir su Consola de Amazon a la EC2 - página de Instances. En la consola AWS, en la barra superior, hacia la derecha superior (entre donde muestra su nombre de usuario, y "Apoyo") haga clic en la gota hacia abajo y asegúrese de que la región coincida con la que su servidor Hub está en (si ya lo hace, salta ese paso).
Si sólo tiene un servidor/instance detenido (o está seguro de qué servidor necesita trabajar con), entonces puede saltarse este próximo paso. Aunque, si tiene 2 o más instancias, para estar completamente seguro de que está trabajando en el correcto, recomiendo hacer una "búsqueda".
Para ello, vuelva a la página de servidores del Hub y copie el ID de instancia EC2 (en mi caso es "i-0c04e369a3d987199"). Pruebe que en la barra de búsqueda hacia la parte superior de la pestaña AWS Console (por defecto la barra de búsqueda contendrá el texto "Filter por etiquetas y atributos o búsqueda por palabra clave"). Pruebe su servidor/instancia ID allí y pulse enter.
Aumentar el tamaño del volumen
Sólo un caso debería seguir mostrando en su consola AWS. Si no obtiene ningún resultado, compruebe doblemente que ha seleccionado la región correcta y que se ha firmado en la cuenta AWS correcta (si utiliza múltiples cuentas). Más información sobre su servidor ahora debe ser viable en el panel inferior. Desplazarse a través de esto hasta que vea "Dispositivo de arranque", es probable que sea "/dev/xvda".
Haga clic en el dispositivo (por ejemplo, /dev/xvda en mi caso) y el pequeño pop-over negro debe aparecer con cierta información sobre el volumen EBS. Haga clic en el ID EBS (en mi caso "vol-02110c92a873ad915") y debe ser redireccionado a la página de Consola AWS - Volumes, con sólo el volumen deseado.
Haga clic derecho en su volumen y seleccione "Modify Volume". Un pop over debe abrir. Busque dónde se dice "Tamaño". El mío es actualmente "10" (GB). Aumente ese número al tamaño de volumen deseado (en GB). Voy a hacer el mío 20GB. Luego haga clic en el botón "Modificar". En la siguiente pantalla haga clic en "Sí". Usted debe ser recibido con un mensaje verde: "Modify Volume Request Succeed". Eso debería ocurrir casi al instante, pero es posible que necesite refrescar la consola AWS para ver su pantalla de volumen con el tamaño deseado (por ejemplo, 20 GiB en mi caso). Si no lo hace, intenta refrescarte de nuevo.
Volver al Hub: reiniciar su servidor (si se detiene) y confirmar el volumen más grande
Eso es todo lo que necesitamos para la consola AWS, así que ahora puedes registrarte y cerrarlo. Si detuvo tu servidor, regresa a la página de Servidores del Hub. En su servidor, haga clic en "Iniciar" para traerlo de vuelta a la vida. De acuerdo con lo habitual, tomará un poco de tiempo para estar disponible. Para la mayoría de los servidores, esto sólo debe tomar un par de minutos (5 al máximo).
Una vez que su servidor se ejecuta (o directamente si no se detuvo), inicie sesión a través de SSH. Si usted fuera a ejecutar el comando df de nuevo, usted notará que nada ha cambiado. Eso es porque sólo hemos aumentado el tamaño del volumen. Si lo desea, puede comprobar que el volumen es más grande, con gdisk:
# gdisk -l /dev/xvda GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/xvda: 41943040 sectors, 20.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 8A333A04-DB02-4249-870C-EC5665D405BF Partition table holds up to 128 entries First usable sector is 34, last usable sector is 20971486 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 6143 2.0 MiB EF02 grub 2 6144 20969471 10.0 GiB 8300 rootfs
Nota los sectores "Disk /dev/xvda: 41943040, 20.0 GiB".
Arregla la tabla de partición y redimensione la partición
A continuación, necesitamos fijar la tabla de partición (GPT), entonces podemos ampliar la partición para utilizar el nuevo espacio libre. Para ampliar el sistema de archivos (y fijar el GPT), utilizaremos parted (deberemos instalarse por defecto en todos los servidores v15.x).
# parted GNU Parted 3.2 Using /dev/xvda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Primero, doble check the existing info (again) using the 'print' command. Debe traer una advertencia de que no todo el espacio está siendo utilizado, con una opción para arreglarlo..
(parted) print
Warning: Not all of the space available to /dev/xvda appears to be used, you can fix the GPT to use all of the
space (an extra 20971520 blocks) or continue with the current setting?
Fix/Ignore?
Permitir que haga la fijación (por escribir 'f' seguido por enter). Ahora debe mostrar información similar al cheque df que corrimos antes. Aunque tenga en cuenta que esta muestra GigaBytes (1Byte x 1000 x 1000) en lugar de GigiBytes (1Byte x 1024 x 1024), por lo que no se alarma si los números no coinciden. En mi caso, está mostrando 21.5GB (que es 20GiB).
Fix/Ignore? f Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 3146kB 2097kB grub bios_grub 2 3146kB 10.7GB 10.7GB ext4 rootfs (parted)
Para cambiar el tamaño de la partición, utilice el comando 'resizepart'. En un predeterminado de configuración, usted querrá cambiar el tamaño de la partición 2, pero comprobar doble su salida (de 'impresión') para asegurarse de que sus partidos. Tenga en cuenta que ignoré la advertencia sobre la modificación de una partición en uso. También note que he utilizado todo el espacio libre (es decir, fue al tamaño final del disco: 21.5GB)
(parted) resizepart Partition number? 2 Warning: Partition /dev/xvda2 is being used. Are you sure you want to continue? Yes/No? y End? [10.7GB]? 21.5GB (parted)
Doble cheque que todo funcionó como se esperaba con 'print'. Si algo no parece correcto, puede reequilibrar el comando 'resizepart' de nuevo, pero el mío parece bien.
(parted) print Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 3146kB 2097kB grub bios_grub 2 3146kB 21.5GB 21.5GB ext4 rootfs (parted)
Casi hecho; extender el sistema de archivos y terminar
Incluso ahora, si usted iba a salir separado y volver a comprobar la salida de df, todavía no podía ver el nuevo espacio adicional. Esto se debe a que el paso final es extender el sistema de archivos para llenar la partición. Algunas versiones de Parted también pueden hacer eso (IIRC el comando es 'resizefs'), pero el que no tengo no parece tener esa habilidad, así que salga de Parted ('quit'). Puede ignorar de forma segura la información sobre /etc/fstab
(parted) quit Information: You may need to update /etc/fstab.
Luego ejecute 'resize2fs' en la partición:
# resize2fs /dev/xvda2
Si revisamos el df ahora, veremos que el espacio libre está disponible ahora.
# df -h Filesystem Size Used Avail Use% Mounted on udev 486M 0 486M 0% /dev tmpfs 100M 4.1M 96M 5% /run /dev/xvda2 20G 9.8G 10.2G 48% / tmpfs 498M 0 498M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 498M 0 498M 0% /sys/fs/cgroup
YAY! Todo hecho! :)
Limpieza final
Personalmente, me gusta darle unos días para establecerme antes de quitar la instantánea, es sólo por si algo no es correcto, pero no aparece inmediatamente. Dicho esto, nunca lo necesité antes, pero prefiero darle a AWS unos centavos más para el pedazo de mente. Una vez que se siente confiado, puede eliminar la instantánea si desea. Haga eso encontrando las instantáneas como por la primera parte y esta vez en lugar de crear, eliminar.