Espaço em disco é um dos requisitos mais importantes. Dependendo do conjunto de releases, de arquiteturas e do grau de cobertura que você deseja que seu site espelho tenha, uma enorme quantia de espaço em disco pode ser consumida. Também tenha em mente que os sites oficiais provavelmente precisam estar completos. O repositório CVS e as páginas web devem ser sempre espelhados de forma completa. Também observe que os números mencionados neste artigo estão refletindo o estado atual (8.4-RELEASE/9.1-RELEASE). Desenvolvimentos futuros e novas releases apenas irão aumentar o espaço requerido. Certifique-se de manter algum espaço extra (entre 10 e 20%) disponível, em relação as estimativas abaixo, apenas por segurança. Aqui estão algumas estimativas aproximadas:
Distribuição FTP completa: 1.0 TB
Repositório CVS: 5.4 GB
Deltas CTM: 3.2 GB
Páginas Web: 463 MB
O uso atual de espaço em disco pela distribuição FTP pode ser encontrada em ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes.
É claro que você precisa estar conectado à Internet. A largura de banda que será necessária dependerá do uso previsto para o seu site espelho. Se você só quer espelhar algumas partes do FreeBSD para uso local no seu Site/Intranet, a demanda pode ser muito menor do que se você quiser tornar os arquivos disponíveis publicamente. Se você pretende se tornar um site espelho oficial, a largura de banda necessária será ainda maior. Desta forma, nós só podemos dar estimativas grosseiras em relação a este item:
Site local, sem acesso público: basicamente nenhum, mas um link menor que 2 Mbps pode tornar o processo de sincronismo muito lento.
Site público não oficial: um link de 34 Mbps é provavelmente um bom ponto de partida.
Site oficial: recomenda-se um link de no mínimo 100 Mbps, e o seu servidor deverá estar conectado o mais próximo possível do seu roteador de borda.
O dimensionamento destes itens depende do número esperado de clientes simultâneos, o que é determinado pela política de uso do servidor. Estes requisitos também são afetados pelo tipo de serviço que você deseja oferecer. Serviços básicos de FTP ou HTTP podem não necessitar de uma grande quantidade de recursos. Mas fique atento se você for disponibilizar os serviços de CVSup, rsync ou mesmo de AnonCVS. Estes serviços podem ter um enorme impacto nos requisitos de CPU e de memória. Especialmente o rsync, o qual é considerado um devorador de memória, e o CVSup certamente consome um pouco da CPU. No caso do AnonCVS pode ser interessante configurar um sistemas de arquivos residente em memória (MFS) de no mínimo 300 MB, desta forma você precisa considerar este consumo quando avaliar a quantidade de memória requerida. A seguir você irá encontrar alguns exemplos, os quais visam apenas lhe dar uma idéia por alto das necessidades.
Para um site de visitação moderada o qual ofereça o serviço de Rsync, você pode considerar uma CPU entre 800 MHz e 1 GHz, e pelo menos 512 MB de memória RAM. Esta é provavelmente a configuração mínima para um site espelho oficial.
Para um site de visitação frequente, você definitivamente vai precisar de mais memória RAM (considere 2 GB como um bom ponto de partida) e possivelmente de mais poder de processamento (CPU), o que pode significar que você precisará ir para um sistema multiprocessado (SMP).
Você também pode considerar o uso de um subsistema de discos rápidos. As operações em um repositório CVS necessitam de um subsistema de discos rápido (o uso de RAID é altamente desejável). Uma controladora SCSI que possua cache dedicado também pode melhorar a velocidade uma vez que a maioria destes serviços incorre na realização de um grande número de pequenas modificações no disco.
Todo site espelho é obrigado a disponibilizar um conjunto de serviços básicos. Em adição a estes serviços obrigatórios, existe um grande número de serviços opcionais os quais o administrador do servidor pode optar por oferecer. Esta sessão irá detalhar quais serviços você pode oferecer, bem como implementá-los.
Este é um dos serviços mais básicos, e ele é
requerido em todos os sites espelhos que oferecem
acesso público às distribuições
via FTP. O acesso ao FTP deve ser anônimo, e não
é permitido o uso de nenhum controle nas taxas de
upload/download (o que seria uma coisa ridícula de
qualquer maneira). Não é necessário
ter o upload de arquivos habilitado (e isso
nunca deve ser permitido na área
onde os arquivos do FreeBSD são mantidos). Os
arquivos do FreeBSD devem ficar disponíveis sob o
caminho /pub/FreeBSD
.
Existem diversos softwares disponíveis os quais podem ser configurados para operar como um servidor de FTP anônimo. Por exemplo (em ordem alfabética).
/usr/libexec/ftpd
: Este
é o servidor de FTP nativo do FreeBSD.
Certifique-se de ler o ftpd(8).
ftp/ncftpd
: Um
pacote comercial, gratuito para uso com fins
educacionais.
ftp/oftpd
: Um
servidor de FTP desenvolvido tendo a segurança
como seu foco principal.
ftp/proftpd
:
Um servidor FTP modular e muito
flexível.
ftp/pure-ftpd
:
Outro servidor de FTP desenvolvido tendo a
segurança em mente.
ftp/twoftpd
:
Mais um servidor desenvolvido com foco em
segurança.
ftp/vsftpd
:
Um ftpd “muito seguro”.
ftp/wu-ftpd
:
O ftpd da universidade de Washington. Ele se tornou
impopular, por causa da enorme quantidade de problemas
de segurança que foram descobertos nele. Se
você optar por utilizar este software,
certifique-se de mantê-lo atualizado.
O ftpd nativo do FreeBSD, o proftpd, o wu-ftpd e talvez o ncftpd são alguns dos servidores de FTP mais comumente utilizados. Os demais não possuem uma grande base de usuários entre os sites espelhos. Um item a ser considerado é que você pode precisar de flexibilidade para controlar quantas conexões simultâneas serão permitidas no servidor, limitando desta forma o consumo do seu link IP e dos demais recursos do sistema.
O Rsync é muitas vezes
oferecido para acesso ao conteúdo da área de
FTP de um site espelho do FreeBSD, desta forma outros sites
espelhos podem utilizar o seu sistema como fonte para se
espelhar. O protocolo do rsync é diferente do FTP em
muitos aspectos. Ele é muito mais amigável em
relação ao consumo de banda IP, uma vez que
quando um arquivo é alterado ao invés de
transferí-lo por completo novamente, ele transfere
apenas as diferenças entre as duas versões do
arquivo. O Rsync requer uma
grande quantidade de memória para cada
instância. A quantidade de memória alocada
depende do tamanho do modulo sincronizado em termos do
número de diretórios e de arquivos. O
Rsync pode utilizar o
rsh
e o ssh
(que agora
é padrão) para transporte dos dados, ou
então utilizar o seu próprio protocolo para
acesso stand-alone (este é o método preferido
para um servidor público de
Rsync). Obrigatoriedade de
autenticação, limites ao número de
conexões simultâneas e outras restrições
podem ser aplicadas. Há apenas um pacote de software
disponível para se implementar um servidor de
Rsync:
net/rsync
Se você deseja disponibilizar as páginas web do FreeBSD, você vai precisar instalar um servidor web. Opcionalmente você poderá oferecer acesso a sua árvore de FTP via HTTP. A escolha do software do servidor web é uma escolha do administrador do site espelho. As opções mais populares são:
www/apache22
:
O Apache é o
servidor web mais amplamente utilizado na internet.
Ele é usado extensivamente pelo projeto
FreeBSD.
www/thttpd
:
Se você for servir uma grande quantidade de
conteúdo estático, você pode
constatar que o uso de uma aplicação
como o thttpd é mais eficiente do que o uso do
Apache. Ele está
otimizado para operar sob a máxima performance
no FreeBSD.
www/boa
:
O Boa é uma outra
alternativa ao thttpd e ao
Apache. Ele deve prover
uma performance consideravelmente melhor que a do
Apache para conteúdos puramente
estáticos. Ele não possui, pelo menos
até o momento em que esse artigo está
sendo escrito, o mesmo conjunto de
otimizações para o ambiente FreeBSD que
encontramos disponíveis no
thttpd.
O CVSup é um meio muito eficiente de distribuição de arquivos. Ele trabalha de forma semelhante ao rsync, mas foi especialmente projetado para uso com repositórios CVS. Se você deseja disponibilizar o repositório CVS do FreeBSD, você deve considerar seriamente fazê-lo via CVSup. É possível oferecer acesso a um repositório CVS via AnonCVS, FTP, rsync ou HTTP, mas as pessoas vão se beneficiar muito mais de um acesso via CVSup. O CVSup foi desenvolvido pelo John Polstra. É um pouco complicado instalá-lo em uma plataforma diferente do FreeBSD, uma vez que ele foi escrito em Modula-3 e consequentemente necessita de um ambiente Modula-3 disponível. O John Polstra preparou uma versão simplificada do M3 a qual é suficiente para executar o CVSup, e que pode ser facilmente instalada. Consulte Ezm3 para maiores detalhes. Os ports relacionados são:
net/cvsup
:
O port nativo do CVSup (cliente e servidor) o qual
requer a instalalação do lang/ezm3
.
net/cvsup-mirror
:
O kit de espelhamento do CVSup, o qual requer o
net/cvsup-without-gui
, e que
o configura para atuar no espelhamento dos
serviços. Alguns administradores podem preferir
utilizar uma forma diferente de configurar um site
espelho.
Existem alguns outros, como o net/cvsup-without-gui
o qual
você pode desejar olhar. Se você preferir um
pacote binário, compilado estaticamente, de uma
olhada aqui.
Esta página continua mencionando o erro SG1, o qual
esteve presente no CVSup. Talvez
o John venha a criar no futuro um site genérico para
download de binários estáticos para
várias plataformas.
É possível utilizar o CVSup para disponibilizar qualquer tipo de arquivo, e não apenas repositórios CVS, mas a configuração pode ser complexa. O CVSup é conhecido por consumir um pouco de CPU tanto no servidor quanto no cliente, uma vez que ele precisa comparar muitos arquivos.
Se você possui o repositório CVS, você pode desejar disponibilizá-lo via cvs anônimo. Um pequeno aviso antes: Não existe muita demanda para este tipo de acesso, ele requer alguma experiência, e você precisa saber o que está fazendo.
Geralmente há duas formas de se acessar um
repositório CVS remotamente: via
pserver ou via ssh
(nós não consideramos o
rsh
). Para acesso anônimo, o uso
do pserver é bastante adequado,
mas alguns optam por também oferecer acesso via
ssh
. Existe um wrapper
customizado no repositório CVS, para ser utilizado
como shell para uma conta anônima de ssh. Ele faz um
chroot, e portanto requer que o repositório CVS
esteja disponível no diretório home do
usuário anônimo. Isto pode não ser
possível para todos os sites. Se você for
oferecer apenas acesso via pserver,
esta restrição não se aplica, mas
você pode ficar sujeito a um risco maior de
segurança. Você não precisa instalar
nenhum software especial, uma vez que o cvs(1) vem por
padrão na instalação básica do
FreeBSD. Você precisa habilitar o acesso
através do inetd
, para isto basta
adicionar uma entrada ao seu
/etc/inetd.conf
semelhante a
esta:
Consulte o manual para detalhes das
opções. Consulte também a
página de info do CVS sobre
formas adicionais de certificar-se de que o acesso ao
repositório está configurado apenas para
leitura. Recomenda-se que você crie uma conta
não privilegiada, preferencialmente chamada
anoncvs
.
Você também precisa criar um arquivo
passwd
no seu
/home/ncvs/CVSROOT
e atribuir um
password (em branco ou anoncvs) para acesso deste
usuário ao CVS. O diretório
/anoncvstmp
é um sistema de
arquivo baseado em memória que tem um
propósito especial. Ele não é
obrigatório mas seu uso é recomendado, uma
vez que o cvs(1) cria uma estrutura de
diretórios ocultos no seu /tmp
a qual não é utilizada depois da
operação, mas que deixa as coisas
dramaticamente lentas se forem necessárias
operações reais de escrita e leitura para o
disco. Aqui está um exemplo de configuração no
/etc/fstab
, de como configurar um
MFS:
Esta é (naturalmente) uma sintaxe otimizada ao máximo, e foi sugerida pelo John Polstra.
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Para perguntas sobre FreeBSD, leia a
documentação antes de contatar
<questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para
<doc@FreeBSD.org>.