O que é um VPS? Entenda de forma simples
Entenda o que é um VPS, como virtualização e containers dividem o hardware, o que o acesso root permite e quais limites o plano mantém.
O que é um VPS?
Um VPS (servidor privado virtual) é uma parte de um computador físico num data center, alugada a si como se fosse uma máquina inteira sua. O software nesse computador divide-o em vários servidores independentes, e recebe um deles: a sua própria alocação de memória, o seu próprio espaço em disco, um endereço IP e acesso de administrador para instalar software dentro dos limites do plano. O servidor permanece em execução, e os planos com exposição pública respondem num endereço na internet.
As três palavras explicam o produto. Servidor é um computador que permanece ligado e responde a pedidos através da rede. Virtual significa que foi criado por software. O seu servidor é uma partição de uma máquina física maior. Privado significa que essa partição pertence apenas a si. Os seus ficheiros e programas em execução não são visíveis para quem aluga a partição ao lado da sua.
Se nunca teve acesso root a nenhum sistema, esta última parte é a mais importante. Um VPS fornece acesso de administrador ao ambiente do seu servidor. O que já está configurado e o que pode alterar depende da imagem, da tecnologia de virtualização e do plano.
O que o hypervisor divide e o que ele partilha
Num VPS baseado numa máquina virtual, o programa responsável pela divisão chama-se hypervisor. Ele é executado na máquina física, chamada host. Para cada cliente, disponibiliza um conjunto de hardware virtual: um processador, memória, um disco e uma placa de rede. Um sistema operativo é instalado nesse hardware virtual e arranca como se fosse proprietário de um computador real. Esse sistema convidado é o seu VPS. KVM (kernel-based virtual machine), Xen, VMware ESXi e Microsoft Hyper-V desempenham esta função. Os VPS em contentores, como o OpenVZ, usam uma camada de virtualização no kernel do sistema operativo do host, sem um kernel convidado separado.
A memória e o disco são divididos por espaço. O processador é dividido por tempo. Esta diferença explica a maioria das situações que surpreendem mais tarde. A memória atribuída não é automaticamente uma reserva de RAM física: o KVM suporta overcommit de memória e o host pode usar swap para a memória do convidado. O seu disco é um ficheiro ou um volume lógico no armazenamento do host e permanece seu até o eliminar. Os seus cores virtuais são filas de espera nos cores reais do host, e o hypervisor agenda qual convidado será executado em seguida.
Um comando identifica a virtualização que consegue detetar.
systemd-detect-virt
uname -rsystemd-detect-virt apresenta kvm num VPS KVM, o que significa que um hypervisor completo arrancou um kernel que pertence exclusivamente a si. Apresenta lxc ou openvz para essas tecnologias de contentores, nas quais o seu servidor é uma área isolada dentro do próprio sistema operativo do host e o kernel é partilhado com outros contentores na máquina; container-other significa que detetou outro ambiente de contentores. Apresenta none quando não deteta virtualização. Esta diferença tem consequências reais, porque um kernel partilhado é um kernel que não pode alterar. Num contentor com kernel partilhado, o carregamento de módulos é controlado pelo host. Por isso, uma funcionalidade no kernel, como o módulo VPN WireGuard, requer suporte do host. Num contentor com kernel partilhado, uname -r normalmente apresenta a versão do kernel do host, mas os runtimes de contentores diferem: o gVisor executa contentores sem partilhar o kernel do host, e o seu exemplo oficial apresenta 5.15.0-gvisor. Num servidor KVM, o mesmo comando mostra um kernel instalado dentro do seu próprio sistema convidado, que pode atualizar ou substituir da mesma forma que faria em qualquer outra máquina.
O que significa virtual neste contexto?
Como o servidor é composto por software, o aprovisionamento não exige que alguém instale uma nova máquina física para si. Ninguém instala hardware para si. O servidor é criado a partir de uma imagem de modelo. Por isso, uma reconstrução instala novamente um Ubuntu limpo, mas também apaga o conteúdo existente do disco. A maioria dos painéis dos fornecedores também permite criar um snapshot do disco antes de tentar algo arriscado, redimensionar o plano com um reboot e mover o seu guest para hardware diferente quando o host subjacente precisa de manutenção.
O preço resulta do mesmo facto: uma máquina física é paga por vários clientes ao mesmo tempo. É por isso que um VPS tem o preço que tem em comparação com o aluguer de um servidor completo.
O custo está diretamente associado ao benefício. O hardware subjacente é partilhado, por isso um vizinho ocupado também é um problema para si. A secção abaixo sobre limites contém o comando que mede esse efeito.
O que significa “privado” neste contexto?
Privado significa isolamento, e vale a pena explicar concretamente até que ponto ele existe. Você tem o seu próprio sistema de ficheiros raiz, as suas próprias contas de utilizador e a sua própria lista de processos. Um VPS baseado numa máquina virtual também tem o seu próprio kernel, enquanto um contentor OpenVZ partilha o kernel do host. Outro cliente no mesmo host não pode listar os seus processos nem ler os seus ficheiros, porque o guest desse cliente não tem acesso à sua memória nem ao seu disco virtual. As máquinas virtuais executam sistemas operativos separados, enquanto os contentores com kernel partilhado isolam os respetivos utilizadores e programas dentro de um único sistema operativo. O isolamento termina no próprio host: quem executa o hypervisor pode ler a memória do seu guest quando quiser, e eliminar essa última lacuna exige o hardware de memória encriptada descrito em computação confidencial num VPS.
O alojamento partilhado funciona de outra forma. Você recebe um diretório numa máquina que aloja centenas de outros sites, um painel de controlo e o software que o fornecedor decidiu instalar. Não existe apt install nesse caso, porque instalar um pacote altera toda a máquina, e você não tem autorização para alterar toda a máquina. Alojamento partilhado versus um VPS explica esta diferença em detalhe. Em resumo: o alojamento partilhado aluga-lhe uma conta, enquanto um VPS lhe aluga um computador.
Uma ficha técnica de VPS, linha a linha
Cada VPS é vendido como uma lista curta de números. Abaixo está um plano de gama média usado como exemplo ao longo do texto. Estes valores são ilustrativos, não são uma proposta comercial nem um levantamento de mercado datado.
Os dados por trás deste gráfico
[
{
"plan": "Example mid-range VPS",
"vcpu_cores": 4,
"ram_gb": 16,
"nvme_gb": 160,
"bandwidth_tb": 8,
"ipv4_addresses": 1
}
]Essa linha única descreve todo o produto. Leia-a da esquerda para a direita.
4 vCPU. Uma vCPU (unidade central de processamento virtual) é um processador virtual que o hypervisor agenda nos processadores do host. Exceto quando o plano indica recursos dedicados, trata-se de uma parte dessa thread, não de uma reserva. Dentro do servidor, nproc normalmente mostra 4. Ele conta os processadores disponíveis para o processo atual; a afinidade de CPU e as quotas de CPU do cgroup, quando suportadas, podem reduzir esse valor, enquanto OMP_NUM_THREADS e OMP_THREAD_LIMIT definem, respetivamente, os valores mínimo e máximo retornados, e nproc --all conta todos os processadores instalados. lscpu mostra um nome de modelo que pode corresponder à CPU real do host ou a um modelo genérico do QEMU, conforme a configuração do host.
16 GB de RAM. O plano especifica uma alocação ou um limite de memória, mas isso, por si só, não garante RAM física reservada no host. free -h informa a memória utilizável em unidades binárias, excluindo o kernel e as regiões de memória reservadas. Por isso, compare as unidades GB ou GiB usadas pelo provedor antes de avaliar a diferença. A memória adicional além da alocação depende do plano e da configuração de virtualização.
160 GB de NVMe. NVMe (non-volatile memory express) é a forma como o disco é conectado dentro do host, e é muito mais rápido que os SSDs SATA usados em planos antigos. O seu espaço aparece como um disco virtual, normalmente /dev/vda no KVM. df -h / informa o sistema de arquivos raiz em unidades binárias, portanto o tamanho exibido difere do tamanho de um disco anunciado em GB decimais e também exclui o espaço usado por outras partições e pelos metadados do sistema de arquivos. O valor disponível é ainda menor, porque o ext4 reserva 5 por cento do sistema de arquivos para root por padrão. O que o SSD de um VPS com SSD realmente significa e como verificar o disco que foi vendido explicam o assunto em mais detalhe.
8 TB de transferência. Esta é a quantidade de dados transferida por mês, normalmente contando apenas o tráfego de saída. É um volume, e a velocidade da porta é outro número especificado pelo plano. Ao ultrapassar a franquia, o provedor pode cobrar uma taxa ou limitar a velocidade. Leia essa linha antes de hospedar vídeos. sudo apt install vnstat mostra a sua própria contagem com vnstat -m, desde o dia em que o instalou.
1 endereço IPv4. O endereço é seu enquanto você alugar o servidor. Você pode apontar um domínio para ele e aceitar tráfego nas portas permitidas pelo firewall e pela política de rede do provedor. As configurações de DNS reverso também dependem do provedor. Planos muito baratos às vezes colocam vários clientes atrás de um único endereço compartilhado. Isso é chamado de NAT VPS. Nesse caso, ip -4 addr show informa um endereço privado, como 10.0.0.5, e as portas de entrada são limitadas.
Quatro comandos confirmam o que foi fornecido.
nproc
free -h
df -h /
ip -4 addr showSe algum desses valores divergir da ficha técnica além do arredondamento descrito acima, vale abrir um chamado com o suporte antes de instalar qualquer coisa na máquina.
O que o acesso root significa na prática
Root é a conta de administrador no Linux, e o seu ID de utilizador é 0. Execute id -u e verá 0 quando for root. Root pode instalar pacotes para todo o sistema, abrir portas abaixo de 1024 (por predefinição, o kernel reserva essas portas para root ou para processos com CAP_NET_BIND_SERVICE, pelo que um processo sem root com essa capacidade pode associar-se à porta 80 sem reduzir net.ipv4.ip_unprivileged_port_start), ler e editar ficheiros do sistema e destruir o sistema com um comando descuidado; carregar módulos e substituir o kernel exige controlo do kernel, que os contentores com kernel partilhado não fornecem. Ninguém desfaz isso por si.
A diferença prática é simples. Num alojamento partilhado, abre um pedido de suporte para solicitar uma aplicação. Num VPS, executa isto.
sudo apt update
sudo apt install -y nginx
systemctl status nginxNuma imagem Ubuntu que utiliza systemd, systemctl status nginx deve apresentar active (running) depois da instalação, e o endereço IP do servidor num navegador deve mostrar a página predefinida do nginx se a porta 80 estiver acessível. Se o estado apresentar failed, execute journalctl -u nginx -n 50 e leia as últimas linhas, porque o serviço regista o motivo pelo qual recusou iniciar. Os motivos habituais são um erro de digitação num ficheiro de configuração ou outro programa já estar a escutar na porta 80.
Root também é toda a sua fronteira de segurança, e o acesso é feito através do método de início de sessão configurado para o servidor, como uma chave SSH ou uma palavra-passe. A primeira sessão num servidor novo não é o momento para instalar aplicações. Crie um utilizador normal, mude o início de sessão para uma chave SSH e coloque uma firewall à frente das portas. Os primeiros dez minutos num VPS apresenta essa lista pela ordem correta, Noções básicas sobre chaves SSH explica o próprio início de sessão, Noções básicas sobre a firewall ufw explica as portas e Utilizadores com privilégios mínimos explica com que utilizadores os seus serviços devem ser executados depois. Monitorize os logs do serviço SSH com journalctl -u ssh -f para detetar tentativas de início de sessão.
Quais são os limites de uma VPS?
O processador é partilhado, e é possível medir essa partilha. Steal time é o período em que a sua CPU virtual estava pronta para executar, mas não recebeu tempo de CPU porque o hypervisor atribuiu o núcleo físico a outro guest.
vmstat 1 5A coluna st mostra o steal time. Picos breves de steal time ocorrem em hosts partilhados. Um valor de dois dígitos mantido enquanto os seus próprios processos estão inativos normalmente indica que o host está sobrecarregado, e nenhum ajuste dentro do seu servidor irá resolver o problema, porque a espera ocorre fora do seu servidor. A Hostinger distingue o CPU steal do seu sistema de créditos de CPU; a política de créditos de CPU restaura a capacidade total depois de o uso diminuir e de os créditos serem repostos até ao limiar de recuperação. Leia a política de CPU do seu plano antes de atribuir o problema aos vizinhos. Avaliar corretamente o desempenho de uma VPS mostra como confirmar isso antes de contactar o fornecedor. O steal é reportado por guests KVM e Xen. Em contentores, o valor reportado depende da forma como as estatísticas de CPU são expostas e não é uma medida fiável da limitação de CPU do contentor.
A memória é fixa, e o limite é abrupto. Quando a memória se esgota e a recuperação de memória não consegue libertar o suficiente, o killer OOM (out of memory) do kernel escolhe um processo e termina-o com SIGKILL.
sudo dmesg -T | grep -i "out of memory"Uma linha explica uma indisponibilidade que, de outra forma, parece um mistério:
Out of memory: Killed process 2412 (mysqld) total-vm:2183104kB, anon-rss:1897224kB, file-rss:0kBNormalmente, o próprio log da aplicação não indica nada, porque o SIGKILL não dá ao processo oportunidade de escrever qualquer informação. Consulte o log do kernel para saber o motivo; o acesso de um contentor a esse log depende da configuração do host. Confirme se o swap está configurado antes de adicionar um ficheiro de swap e verifique as regras do host numa VPS com contentores.
O disco é rápido e é partilhado. O NVMe do host é rápido, mas o seu segmento compete com todos os outros guests pelas operações de entrada e saída. Um benchmark feito numa hora de pouco movimento não é uma garantia sobre o mesmo equipamento durante o pico.
Não pode tocar no hardware. Não pode ligar nenhum equipamento. Não pode usar um dispositivo USB, uma placa de captura ou uma placa gráfica, a menos que o plano faça o passthrough de propósito, o que corresponde a um produto diferente: uma VPS com GPU.
Existe exatamente uma instância. Uma VPS é uma única máquina. Uma falha no host pode deixar o seu servidor indisponível; a possibilidade de o fornecedor o migrar ou reiniciar noutro local depende do serviço, e o failover da aplicação continua a ter de ser configurado. As cópias de segurança são da sua responsabilidade, por isso cópias de segurança com restic a partir de uma VPS deve fazer parte da lista de configuração. Um snapshot do fornecedor é conveniente, mas a proteção depende do local onde é armazenado e da forma como é retido; mantenha também uma cópia de segurança independente.
O suporte termina no hypervisor. Num plano não gerido, o fornecedor mantém o hardware, a rede e a camada de virtualização em funcionamento. Tudo a partir do sistema operativo é da sua responsabilidade, incluindo as atualizações de segurança. Alojamento gerido e não gerido explica essa divisão, e atualizações automáticas no Ubuntu é a medida mínima útil a ativar.
Como um VPS se compara com os conceitos que costumam ser confundidos com ele
Uma máquina virtual é um sistema convidado com hardware virtual e o seu próprio kernel do sistema operativo; um VPS é um produto de servidor alugado, criado como máquina virtual ou contentor, normalmente com um endereço público e uma rede já associada. Uma VPC (nuvem privada virtual) é uma rede privada dentro de uma nuvem maior, e os servidores ficam dentro dela. Portanto, responde a uma pergunta completamente diferente. VPS, VM e VPC separa corretamente os três termos.
Um servidor dedicado é toda a máquina física reservada para si, sem convidados de outros clientes a partilhá-la; pode instalar um hypervisor por sua conta. É uma opção quando o steal time ou a contenção de disco são realmente o seu principal gargalo. VPS e servidor dedicado apresenta os principais critérios para essa decisão.
Uma VPN (rede privada virtual) partilha duas letras com VPS e nada mais. Uma VPN é um túnel encriptado entre máquinas. Um VPS é uma máquina, e uma utilização comum é executar a sua própria VPN nele. É daí que surge a confusão. VPS e VPN esclarece a diferença entre os dois termos.
Hardware que possui, ou um hypervisor como o Proxmox numa máquina em casa, dá-lhe controlo sobre o hardware e uma ligação residencial que muitos serviços tratam com desconfiança. Também lhe dá o próprio host, pelo que um convidado pode executar o seu próprio hypervisor depois de ativar a virtualização aninhada no Proxmox, algo que um VPS alugado também tem de suportar explicitamente. Proxmox e VPS compara capacidade, ruído e disponibilidade com uma mensalidade.
O que as pessoas executam num VPS?
A resposta honesta é: software compatível com o sistema operativo, a arquitetura, os recursos e as regras do fornecedor do VPS. As opções comuns incluem um site com a respetiva base de dados, uma VPN privada, um servidor de jogos, um monitor de estado, um servidor de correio, uma biblioteca multimédia ou um agente de programação que continua a trabalhar quando o portátil está fechado. O correio exige primeiro a verificação da política do fornecedor. Por exemplo, a DigitalOcean bloqueia por predefinição as portas SMTP 25, 465 e 587 nos Droplets. Os serviços de rede escutam em portas. Por isso, o que é uma porta no Linux é o próximo conceito que vale a pena aprender, e o que pode fazer com um VPS apresenta a lista mais completa, incluindo o custo de recursos de cada opção.
FAQ
Um VPS é a mesma coisa que uma máquina virtual?
Um VPS é um servidor que uma empresa aluga para si, com um sistema operativo, normalmente um endereço IP público e um preço associado. Pode ser uma máquina virtual com o seu próprio kernel ou um contentor, como um VPS OpenVZ que partilha o kernel do host. Os termos referem-se a coisas diferentes: "máquina virtual" descreve qualquer guest executado num hypervisor, incluindo um no seu próprio laptop, enquanto "VPS" descreve o produto que compra. Uma VPC é ainda outra coisa: uma rede privada dentro de um fornecedor de cloud, e não um servidor.
Preciso de saber Linux para usar um VPS?
Precisa de saber o básico, e pode aprender o resto à medida que avança. O conjunto inicial inclui ligar-se com ssh, navegar com cd e ls, editar um ficheiro com nano, instalar software com apt e consultar logs com journalctl. Um VPS não gerido pressupõe que tratará das atualizações e da firewall. Se isso for mais do que pretende, compare o preço e as responsabilidades de um plano gerido ou de um painel de controlo.
Por que motivo o meu VPS mostra menos RAM do que o plano prometia?
O Linux apresenta a memória utilizável, enquanto o plano anuncia a memória atribuída. A imagem do kernel e várias regiões de memória reservadas são subtraídas antes de ser calculado o total em free -h. Além disso, as unidades binárias diferem dos GB decimais, por isso confirme que unidades o fornecedor utiliza. Compare a alocação, as unidades e a memória reservada antes de avaliar a diferença. Uma falta de memória sem explicação justifica a abertura de um pedido de suporte.
O que é o steal time e devo preocupar-me com ele?
O steal time é a percentagem de tempo durante a qual a sua CPU virtual estava pronta para executar, mas teve de esperar porque o hypervisor atribuiu o núcleo físico a outro guest. A coluna st de vmstat 1 apresenta esse valor. Podem ocorrer picos breves de steal time em hardware partilhado. Um valor sustentado na casa dos dois dígitos, enquanto a sua própria carga é baixa, normalmente significa que o host físico está sobrecarregado. A solução é usar outro host ou outro plano, porque nada dentro do seu servidor controla o scheduler do host. Os limites de utilização da CPU também reduzem o desempenho, e a recuperação segue a política do fornecedor, incluindo a reconstrução de créditos de CPU quando necessário.
Posso executar mais de um serviço num único VPS?
Sim. Esse é o objetivo de ter root: a máquina é de uso geral e os serviços podem coexistir desde que caibam na memória e cada um escute na sua própria porta. A memória costuma ser o primeiro limite encontrado, e a velocidade do disco, o segundo. O email é a exceção mais problemática, porque a entrega depende da reputação do seu endereço IP e da política SMTP do fornecedor, além do próprio servidor de email.