Nube personal en Proxmox / Sudo Null IT News

En el último artículo (escribí cómo instalar Proxmox 8 en Orange Pi 5(b). Incluso funcionó, pero me encontré con el hecho de que el fabricante del hardware no lanza kernels nuevos. Hay 5.10.160 para el hardware. y está desactualizado para Proxmox 8. Las máquinas virtuales funcionan, pero hay problemas con el firewall. El fabricante promete lanzar uno nuevo en cualquier momento, pero no esperé y decidí hacer la infraestructura de otra manera, más tarde lo haré. “Solo agrega los nodos al arma. Escribiré sobre eso. Ya es una serie de artículos. Este describirá el objetivo y los primeros pasos hacia él.


Entonces, decidí construir mi infraestructura de nube doméstica en:

  1. Intel NUC. Esta es la especificación utilizada para producir computadoras compactas. Compré una Mini PC Asus.

  2. Estación de acoplamiento para dos discos duros de 2,5-3,5, que puede funcionar a una velocidad de 10 Gbps a través de USB 3.2

  3. Dos HDD 3.5 de 8TB. ¿Por qué perder el tiempo en nimiedades?

  4. Con el Orange PI 5b instalé dos SDD de 2TB

  5. Compré otro SDD NVME de 2 TB para conectarlo al NUC.

  6. Fuente de alimentación ininterrumpida para toda esta belleza.

Todo se ve así:

Una idea como esta:

  1. Instale Proxmox 8 en NUC, cree un conjunto de máquinas virtuales en él y cree todos sus servicios en ellas.

  2. Compra por $4 al mes un servidor externo mínimo en la nube para exponer tus servicios a través de él.

La infraestructura de red será la siguiente:

  1. El servidor externo será pfSense con Wireguard VPN. De hecho, tengo un artículo (sobre cómo usar el manual de estrategias de Ansible para crear una VPN, pero lo necesitaba para dominar Ansible e IPTables y comprender mejor las redes. Para uso real, recomiendo pfSense. Puede hacer todo lo que pueda pueda imaginar en áreas de VPN, firewalls, etc. Además, es fácil de usar y está bien documentado, sin mencionar la más alta calidad.

  2. Dentro de Proxmox se crearán dos redes locales aisladas a partir de máquinas virtuales. Aislado de todo en el mundo. Uno para personal, el segundo para servicios públicos. Estos serán sólo dos puentes de red que no están ligados a nada.

  3. También habrá una máquina virtual interna con pfSense, que verá estos dos dispositivos locales y la interfaz WAN (acceso a Internet). Se decidió no jugar todavía con la VLAN ya que la red es simple. Será una puerta y estará conectada vía VPN a pfSense externo para publicar servicios.

  4. En el pfSense interno, se generará HAProxy para publicar servicios desde máquinas virtuales en el puerto. Sobre subdominios.

  5. En el pfSense externo, el puerto HAProxy del interno (es visible en la VPN) se reenviará a Internet. Esto te permitirá tener sólo una VPN en un servidor externo y nada más, lo que significa que será barato.

  6. En la etapa inicial, de hecho, todo pfSense se levantará directamente en Proxmox, ya que tener una VPN pfSense en la nube o no no importa siempre que no haya conexiones externas. Esto le permitirá probar todo en un entorno seguro.

Por un lado, esta solución no requiere un costoso servidor externo. Cabe señalar aquí que el tráfico se cobra a un volumen determinado y esto hay que tenerlo en cuenta. Por otro lado, facilita la demolición de máquinas virtuales que se estropearon durante los experimentos, la creación de plantillas y instantáneas con copias de seguridad. Ya he roto una docena de máquinas virtuales y, por lo general, en lugar de arreglarlas, simplemente las rechazo, lo que ahorra tiempo. ¡Proxmox es fantástico cuando funciona! Al mismo tiempo, el aislamiento de las configuraciones locales, el aislamiento tanto de pfSense dentro de la VPN como del sistema host, me permite no preocuparme demasiado por el hecho de que los servicios externos representen un peligro para el hardware de mi hogar.

Vamos a empezar. La primera es la instalación de Proxmox VE. Hay un rastrillo justo ahí. Su distribución iso es casera, en mi opinión, escoria (en mi humilde opinión, después de acumular problemas, en los comentarios dijeron que no tenían problemas). Allí LVM no funciona y al mismo tiempo Debian está paleado de tal manera que es mejor no verlo. Entonces, después de probarlo, instalé Debian Bookworm e instalé Proxmox. El proceso de instalación es el mismo que en mi último artículo (Documento oficial aquí (y en él se recomienda instalar el kernel primero. Me sugirieron en los comentarios. Lo instalé más tarde y parece que no hay problemas, pero No puedo verificar si KSM funciona, excepto que no es necesario instalar firmware para ARM y todo es similar al artículo anterior:

Edite /etc/hosts como se describe allí

127.0.0.1       localhost
192.168.1.230   pve-main.proxmox.com pve-main

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Agregue repositorios de Proxmox a /etc/apt/source.lists

deb  bookworm main contrib non-free non-free-firmware
deb  bookworm-updates main contrib non-free non-free-firmware
deb  bookworm-security main contrib non-free non-free-firmware


# Proxmox Backup Server pbs-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb  bookworm pbs-no-subscription
deb -client bookworm main
deb  bookworm pve-no-subscription

Instalamos aptitude para que si hay problemas con las dependencias, los encuentre y los resuelva. Vienen en nabos Proxmox, así que los recomiendo.

apt-get install aptitude

Deshabilite NetworkManager ya que PVE gobierna la red usando ifupdown2

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

Deshabilitamos todas las cosas de suspensión/hibernación en Debian, ya que apagarán el servidor:

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Instalamos Proxmox VE (PVE) y observamos que primero se instala ifupdown2. Creo que esto podría ser importante.

aptitude install ifupdown2 proxmox-ve open-iscasi

Como resultado, Proxmox se instalará y funcionará. Puedes ir a la consola, pero eso no es todo. Quiero copias de seguridad hermosas, por eso también instalamos Proxmox Backup Server (PBS), esto puede comprimirlas y deduplicarlas y mucho más. Muy bien. Lo instalé directamente en el mismo host que PVE.

aptitude install proxmox-backup-server proxmox-backup-client

El cliente está instalado porque también quiero hacer una copia de seguridad del servidor Proxmox y, curiosamente, se copia perfectamente. PBS ya está disponible en la dirección a la que puedes ir a la consola. Actualmente no hay ningún lugar para hacer una copia de seguridad del servidor, por lo que haremos algo que estaría en algún lugar, la idea es la siguiente:

  1. Se ensamblarán dos discos duros en un volumen LVM Stripe 2, es decir, su velocidad se sumará casi al escribir. Esto no es confiable, porque si uno muere, toda la sección morirá, pero la velocidad es más importante para mí. Al mismo tiempo, el cálculo se basa en el hecho de que o el HDD con copias de seguridad morirá o el SDD con datos y máquinas virtuales morirá, no al mismo tiempo, y esto es duplicación. No soy una empresa y no necesito copias de seguridad de cinco años atrás. O restauraré las copias de seguridad a partir de los datos actuales o restauraré los datos actuales a partir de las copias de seguridad. Eh, hace mucho que no escucho cómo funcionan los discos duros, el sonido es similar a las vibraciones hápticas que se encuentran en los teléfonos modernos 🙂

  2. La partición del SDD interno y dos SDD externos se fusionarán en un volumen LVM Stripe 3 con el mismo propósito: velocidad. La partición y los discos son del mismo tamaño. Esto sucedió porque los dos SSD externos en realidad no son de 2 GB, sino que están redondeados por razones de marketing. Sí, hay un rastrillo aquí, los SSD no funcionaban de manera estable en todos los puertos USB, a veces hubo desaceleraciones y congelaciones hasta que los conecté a aquellos puertos que admiten USB 3.2 gen 2 + Thunderbolt 4.

  3. El volumen /dev/pve-main-vg/root creado durante la instalación de PVE LVM será reemplazado por el volumen del paso 2, ya que si simplemente le agrega dos SSD, Stripe 3 no funcionará.

En realidad, estamos ensamblando dos HDD en uno. Lo siguiente es aproximadamente de memoria, si hay algo que mirar aquí (https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/7/html/logic_volume_manager_administration/stripe_create_ex).

pvcreate /dev/sdX /dev/sdX
vgcreate backups /dev/sdX /dev/sdX
lvcreate -i 2 -I 4 -l 100%FREE -n backups_2_stripe backups
mkfs.ext4 /etc/backups/backups_2_stripe

Como resultado, tenemos una sección para copias de seguridad, que funcionan casi a su velocidad total. LVM es genial para esto y muchas otras cosas. No me molesté con ZFS y Btrfs, aunque tienen algo similar, porque LVM es más simple, además Proxmox tiene integración con él, aunque también existe con FS, no lo he probado.

Luego viene el momento de convertir /dev/pve-main-vg/root al volumen Stripe 3. Esto no es necesario, sólo lo deseas. Primero, hice una unidad flash USB de arranque con Ubuntu 22.04 en vivo e hice todo desde ella (excelentemente descrito aquí como referencia) https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/7/html/logic_volume_manager_administration/stripe_create_ex):

  1. Montable /dev/pve-main-vg/root en /mnt/root

  2. Monitoreamos /dev/backups/backups_2_stripe en /mnt/backups

  3. Cree una carpeta /mnt/backups/root_copy en /mnt/backups

  4. Copie la raíz completa a la carpeta rsync -avh /mnt/root/ /mnt/backups/root_copy/ comando desde la memoria, búsquelo en Google.

  5. Desinstalaremos todo.

  6. Eliminamos /dev/pve-main-vg/root con el comando lvremove /dev/pve-main-vg/root, te preguntará si estás cuerdo, respondemos que parece que sí.

  7. También derribamos /dev/pve-main-vg/swap_1, esto es solo un intercambio y aún será necesario más adelante, pero por la pureza del experimento.

  8. Opciones de SSD para el grupo de volúmenes: vgextend pve-main-vg /dev/sdX && vgextend pve-main-vg /dev/sdX

  9. Hagamos un nuevo volumen lógico LVM rayado: lvcreate -i 3 -I 4 -l 100%FREE -n rootpve-principal-vg

  10. Crear FS: mkfs.ext4 /dev/pve-main-vg/root

  11. A continuación, reducimos este root en 1GB (a mí me resulta más fácil, está perfectamente descrito aquí) https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/8/html/configuring_and_managing_logic_volumes/modifying-the-size-of-a-logic-volume_configuring-and-managing-logic-volumes) para impulsar el intercambio: lvreduce –resizefs -L -1G pve-main-vg/root

  12. Crear un intercambio: lvcreate -i 3 -I 4 -l 100%FREE -n swap_1pve-principal-vg

  13. Creamos una partición para futuros intercambios con intercambio real: mkswap /dev/pve-main-vg/swap_1

  14. Copiamos todo, desde /mnt/backups/root_copy a /dev/pve-main-vg/root usando el mismo rsync, descubrirás cómo.

No puedes prescindir de una partición de intercambio incluso si tienes mucha memoria. Se utiliza la sección de scripts PVE, así que lo hice. Como resultado, tenemos /dev/pve-main-vg/root, que funciona a velocidades de gigabytes por segundo sin esforzarse. Los discos están listos, es hora de pasar a configurar PVE. Primero, instalemos el kernel PVE para que KMS pueda funcionar allí (aún no he comprobado si funciona):

aptitude install proxmox-kernel-6.5.13-1-pve-signed 

Tenga en cuenta que instalé un kernel firmado ya que el arranque seguro está habilitado en UEFI Bios. Luego me metí con el MOK y tuve que volver a firmarlo como se describe aquí (https://pve.proxmox.com/wiki/Secure_Boot_Setup). Pero creo que te las arreglarás, por si acaso te paso el enlace. A continuación, puede configurar el firewall.

El cortafuegos en PVE es interesante. Hay configuraciones para el centro de datos, configuraciones para nodos individuales y configuraciones para máquinas virtuales individuales. Para que funcione debe estar habilitado en todos los niveles. Cada nivel posterior hereda las reglas del anterior. Es importante configurar primero las reglas y luego habilitar el firewall; de lo contrario, acabará con todo. Las reglas a nivel del centro de datos son las que se muestran en la imagen:

Aquí están abiertos todos los puertos, que PVE utiliza para diversas necesidades y puertos a través de los cuales están disponibles diferentes tipos de consolas de control. Después de crear las reglas, necesitas habilitar el firewall en todos los niveles; te mostraré el nivel del centro de datos:

El firewall está configurado y encendido, ¡es hora de configurar PBS para tener muchas copias de seguridad! Para hacer esto, vaya a la consola de administración de PBS: Haga clic en el botón Agregar almacén de datos y agregue nuestro volumen con dos HDD: /dev/backups/backups_2_stripe como almacenamiento no hay nada complicado, lo descubrirá. En un momento, se agrega una carpeta en este volumen porque se monta cuando inicio el servidor, para lo cual está escrito en /etc/fstab:

/dev/mapper/backups-backups_striped_volume /mnt/backups               ext4    errors=remount-ro 0       1

Desde el momento en que agrega el almacenamiento, debe ir a PVE y agregar PBS como almacenamiento para las copias de seguridad. Un diseño un poco extraño para mi gusto, pero así lo hacen. Sí, no se recomienda instalar PVE y PBS en un servidor físico, pero dado que si todo esto está cubierto y luego configurarlo nuevamente, hay mucho texto en el artículo, pero hay pocos comandos y las copias de seguridad permanecerán, no me complicé. él. Realmente agregando PBS a PVE:

La huella digital para agregar PBS como almacenamiento en PVE se puede tomar de PBS abriendo el certificado, desde donde puede copiar y pegar, descubrirá el resto:

Ahora podemos hacer clic en el botón “¡copia de seguridad!”:

También podemos hacer una copia de seguridad del propio servidor PVE. De hecho, todo lo que necesitamos es la carpeta /etc y especialmente /etc/pve. Pero /etc/pve es el punto de montaje del fusible FS, por lo que el comando de copia de seguridad debería decir específicamente que también debe eliminarse, ya que de forma predeterminada el cliente PBS omite los puntos de montaje. Para la prueba, subí todo el disco a una copia de seguridad; le faltaban los puntos de montaje excepto el que le indiqué:

proxmox-backup-client backup root.pxar:/ --repository ${host-ip}:proxmox-backup-server-data --include-dev /etc/pve

proxmox-backup-server-data es el nombre del volumen HDD LVM agregado a PBS como almacenamiento. Me encantan los títulos largos y autodocumentados.

Eso es todo por ahora, este diseño le permitirá crear máquinas virtuales, realizar copias de seguridad comprimidas y deduplicadas y, en general, jugar. La próxima vez sobre la red, si te apetece.

UPD: Realmente no lo entendí, pero parece que para que KSM funcione, es necesario instalar el paquete aptitude install ksmtuned. En este caso, la liberación de memoria comenzará al 80% de su uso. Tengo mucha RAM para mis tareas, así que no la necesito todavía. Lo dejo para aquellos que quieran resolverlo. https://pve.proxmox.com/wiki/Dynamic_Memory_Management

PD: Para configuraciones y consultas, además de un tutorial, recomiendo usar ChatGPT. Ella responde a una pregunta específica y no tienes que buscar mucho tiempo, luego solo necesitas buscar en Google la respuesta para comprobar que no miente. La mayoría de las veces ella no miente 🙂 Es realmente muy conveniente y siempre es educada, no es necesario andar entre fanfarrones del foro para obtener una respuesta simple 🙂

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *