Prefácio
Já se passaram 2 dias desde o lançamento da nova versão do sistema operacional CentOS, especificamente, o CentOS 8. E até agora, há poucos artigos na Internet sobre como fazer algo nele, então decidi preencher essa lacuna. Vou falar não apenas sobre como instalar esses dois programas, mas também sobre como vejo a instalação do Linux em um ambiente virtual no mundo moderno para tarefas típicas, incluindo particionamento de discos e outros aspectos.
Mas, primeiro, quero contar brevemente por que vale a pena migrar para essa versão a partir de todas as anteriores, e há duas razões para isso:
- php7! Na versão anterior do CentOS, era instalado o 'tradicional' php5.4...
Ok, falando mais sério, muitos pacotes pularam várias versões de uma vez. Nós (fãs de sistemas baseados em redhat) finalmente entramos, se não no futuro, pelo menos no presente. E os apoiadores do Ubuntu não vão mais rir de nós e apontar o dedo, bem... pelo menos por um tempo ;).
- A transição de yum para dnf. A principal diferença é que agora é oficialmente suportado o trabalho com várias versões de pacotes ao mesmo tempo. Até agora, isso nunca foi útil para mim na versão oito, mas soa promissor.
Criação de uma máquina virtual
Existem diferentes hipervisores e não é meu objetivo direcionar o leitor para um específico, vou falar sobre princípios gerais.
Memória
Primeiro... Para instalar o sistema CentOS, a partir da versão 7 com certeza, e na 6 também tinha assim (mas isso não é certeza), é necessário pelo menos 2 GB de memória RAM. Portanto, recomendo alocar pelo menos isso inicialmente.
Mas, se necessário, após a instalação, a quantidade de memória pode ser reduzida. Com 1 GB, o sistema básico funciona perfeitamente, eu testei.
Disco
Para uma instalação adequada, deve-se criar um disco virtual de 20-30 GB. Isso será suficiente para o sistema. E o segundo disco para dados. Ele pode ser adicionado tanto na etapa de criação da máquina virtual quanto depois. Normalmente, adiciono depois.
Processador
Com um núcleo, o sistema básico não fica lento. E como os recursos são escaláveis, não vejo sentido em dar mais durante a instalação (exceto se você souber perfeitamente os requisitos e estiver com preguiça de entrar novamente no configurador)
O restante geralmente pode ser deixado como padrão.
Próximo, a instalação
Portanto... Vamos iniciar o instalador... Pessoalmente, há muito tempo que só instalo esses serviços como máquinas virtuais, então não vou descrever a gravação de distribuições em um pendrive — simplesmente monto o ISO como um CD no meu hipervisor favorito, inicio a carga e vamos lá.
A instalação básica é bastante típica, vou me deter em apenas alguns pontos.
Escolha da fonte
Desde o lançamento da oitava versão, o espelho do Yandex está fora do ar há vários dias. Quer dizer, ele sobe periodicamente, mas depois volta a mostrar erro. Estou certo de que é devido à sobrecarga no serviço. Portanto, para indicar a fonte, pessoalmente tive que, em vez de inserir o endereço habitual, ir , escolher um espelho que me agrada e inserir manualmente o endereço na janela do instalador. Aqui é importante lembrar que é necessário indicar o caminho para a pasta onde está o diretório repodata. Por exemplo, .
Particionamento do disco
Essa questão é, na minha opinião, mais religiosa. Cada administrador tem sua posição a respeito. Mas vou compartilhar meu ponto de vista sobre o assunto.
Sim, na verdade, você pode alocar todo o espaço para a raiz e funcionará, muitas vezes até bem. Então, por que complicar com várias partições? — Acredito que as principais razões para isso são 2: cotas e portabilidade.
Por exemplo, se algo der errado e houver erros na partição principal com os dados, você deseja ter a capacidade de ainda iniciar o sistema e realizar ações de recuperação. Portanto, pessoalmente, eu aloco uma partição separada para /boot. Nela estão o kernel e o carregador de inicialização. Normalmente, 500 megabytes são suficientes, mas em casos raros pode ser necessário mais, e considerando que já nos acostumamos a medir espaço em terabytes, eu aloco 2 GB para essa partição. E é importante que ela não seja feita como lvm.
Depois vem a raiz do sistema. Para uma instalação normal, nunca precisei de mais de 4 GB apenas para o sistema, mas durante atividades programadas, frequentemente uso o diretório /tmp para descompactar distribuições, e não vejo sentido em alocar uma partição separada para isso — em sistemas modernos, ele é limpo automaticamente, então não fica cheio. Portanto, eu aloco 8 GB para a raiz.
Swap… No geral, não há muita utilidade prática. Se o seu servidor começou a usar swap, isso hoje em dia significa apenas que é necessário adicionar mais memória RAM. Caso contrário, problemas de desempenho são garantidos (ou alguma aplicação está ‘vazando’ memória). Portanto, esta seção serve apenas para diagnóstico. Assim, 2 GB é uma boa cifra. Sim, independentemente de quanta memória existe no servidor. Sim, eu li todos aqueles artigos que falam sobre a relação entre o volume de memória e o volume de swap… Na minha opinião, estão ultrapassados. Em 10 anos de prática, isso nunca foi necessário para mim. Há 15 anos eu os utilizava, sim.
Decidir se deve ou não dedicar /home a uma partição separada é algo que cada um pode decidir. Se alguém for utilizar ativamente esse diretório no servidor, é melhor dedicar. Se ninguém for usar, não há motivo.
A seguir, /var. Na minha opinião, deve ser separado obrigatoriamente. Para começar, pode-se limitar a 4 GB, e depois ver como evolui. E sim, sob ‘como evolui’, quero dizer que
- Primeiro, sempre pode-se montar outro disco no subdiretório /var (o que eu vou mostrar adiante com um exemplo).
- Em segundo lugar, nós temos LVM — é sempre possível adicionar. Geralmente, isso é necessário quando muitos logs começam a acumular lá. Mas eu nunca consegui prever esse número com antecedência, então começo com 2 GB e depois acompanho.
O espaço não alocado permanecerá livre no grupo de volumes, podendo ser utilizado posteriormente.
LVM
Todos partições, exceto /boot, faz sentido serem feitas em LVM. Sim, incluindo swap. Sim, swap, segundo todos os conselhos, deve estar no início do disco, e no caso do LVM, sua localização não pode ser determinada, de fato. Mas como eu já disse antes, seu sistema não deve não usa swap de forma alguma. Portanto, não faz diferença onde ele está. Não estamos vivendo em 1995, sinceramente!
Em seguida, no LVM há algumas entidades básicas com as quais é necessário saber conviver:
- volume físico
- grupo de volumes
- volume lógico
Volumes físicos são agrupados em grupos, e cada volume físico pode estar em apenas um grupo, enquanto um grupo pode estar em vários volumes físicos simultaneamente.
E volumes lógicos são sempre encontrados em um único grupo.
Mas… Estamos, poxa, no século 21. E os servidores são virtuais. Não faz sentido aplicar nelas os mesmos mecanismos que eram usados para os físicos. E, para os virtuais, é importante ter os dados separados do sistema! Isso é muito importante, especialmente para a possibilidade de rápida transferência de dados para outra máquina virtual (por exemplo, ao mudar para um novo sistema operacional) e outras funcionalidades úteis (como backups separados por partes, usando ferramentas de hipervisor). Portanto, um grupo de volumes é usado para o sistema e outro é obrigatoriamente usado para os dados! Esta separação lógica facilita muito a vida!
Se você criou uma máquina virtual com apenas um disco rígido virtual, a configuração termina aqui. Mas, se forem dois, simplesmente não configure o segundo por enquanto.
Iniciando a instalação.
Pós-instalação
Assim, finalmente, o sistema novo está carregado. A primeira coisa a verificar é a internet.
ping ya.ru Tem resposta? — Ótimo, pressionamos Ctrl-C.
Se não houver — vá configurar a rede, sem isso não dá para viver, mas meu artigo não é sobre isso.
Agora, se ainda não estamos como root, entre como root, pois digitar assim várias comandos com sudo não me agrada (e que os administradores paranoicos me perdoem):
sudo -iAgora, em primeiro lugar, digitamos
dnf -y updateE se você estiver lendo este artigo em 2019, provavelmente nada acontecerá, mas vale a tentativa.
Agora vamos configurar o disco restante.
Supondo que a partição do sistema era xvda, então o disco de dados será xvdb. Ok.
A maioria dos conselhos começará com "Execute fdisk e crie uma partição..."
Então, isso está errado!
Vou repetir isso, pois é importante! Neste caso, para trabalhar com LVM, que ocupa um disco inteiro, mesmo que virtual, criar partições nele é prejudicial! Cada palavra desta frase é importante. Se estamos trabalhando sem LVM — é necessário. Se temos um disco com, digamos, sistema e dados — é necessário. Se precisamos deixar metade do disco vazio por algum motivo — também é necessário. Mas geralmente, todas essas suposições são puramente teóricas. Porque, se decidirmos adicionar espaço à partição existente, será mais fácil fazer isso exatamente com esta configuração. E a conveniência na administração pesa tanto que caminhamos intencionalmente para tal configuração.
A conveniência é que se você quiser expandir a seção de dados, basta adicionar espaço à partição virtual, depois você expande o grupo usando vgextend e pronto! Em casos raros, pode ser necessário algo mais, mas pelo menos você não precisará expandir o volume lógico desde o início, o que já é um alívio. Para expandir esse próprio volume, recomendam, inicialmente, remover o existente e depois criar um novo por cima... O que não é muito agradável e não pode ser feito ao vivo, enquanto a expansão segundo o que descrevi pode ser realizada 'on the fly', sem desmontar a partição.
Assim, criamos o volume físico, depois o grupo de volumes que o inclui e, em seguida, a partição para nosso servidor:
pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www
Aqui, ao invés de usar a letra maiúscula 'L' (e o tamanho em GB), você pode usar a letra minúscula e, assim, ao invés de um tamanho absoluto, especificar um tamanho relativo, por exemplo, para usar metade do espaço livre disponível no grupo de volumes, você deve especificar '-l +50%FREE'.
E o último comando formata a partição no sistema de arquivos ext4 (que até agora, na minha prática, mostra a maior estabilidade em caso de falha, por isso eu prefiro ela).
Agora montamos a partição no local desejado. Para isso, adicionamos a linha correta em /etc/fstab:
/dev/mapper/data-www /var/www ext4 defaults 1 2E digitamos
mount /var/wwwSe surgir um erro — soamos o alarme! Porque isso significa que temos um erro em /etc/fstab. E que na próxima reinicialização teremos problemas muito sérios. O sistema pode nem carregar, o que é bastante triste para serviços em nuvem. Por isso, é necessário corrigir rapidamente a última linha adicionada ou removê-la completamente! É exatamente por isso que não registramos manualmente o comando de montagem — senão não teríamos essa maravilhosa oportunidade de verificar a configuração agora.
Agora, realmente instalamos tudo o que queríamos e abrimos as portas para a web:
dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
Se desejado, também é possível instalar o banco de dados aqui, mas pessoalmente eu prefiro mantê-lo separado do servidor web. Embora tê-lo ao lado seja mais rápido, sim. A velocidade dos adaptadores de rede virtuais geralmente gira em torno de um gigabit, e quando se trabalha na mesma máquina, os acessos ocorrem quase instantaneamente. Mas é menos seguro. Aqui, depende do que é mais importante para cada um.
Agora adicionamos o parâmetro ao arquivo de configuração (criamos um novo, a ideologia moderna do CentOS é assim)
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Reiniciamos o servidor.
Nos comentários, fui criticado pelo conselho de desligar o SeLinux, então vou corrigir isso e escrever que, após isso, é necessário não esquecer de configurar o SeLinux.
Na verdade, é lucro! 🙂
Fonte: habr.com
