                              Espelhando o FreeBSD

  Jun Kuriyama

       <kuriyama@FreeBSD.org>
     

  Valentino Vaschetto

       <logo@FreeBSD.org>
     

  Daniel Lang

       <dl@leo.org>
     

  Ken Smith

       <kensmith@FreeBSD.org>
     

   Revisao: 9f874cda07

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   Many of the designations used by manufacturers and sellers to distinguish
   their products are claimed as trademarks. Where those designations appear
   in this document, and the FreeBSD Project was aware of the trademark
   claim, the designations have been followed by the "(TM)" or the "(R)"
   symbol.

   2018-12-12 13:31:32 +0000 por Edson Brandi.
   Resumo

   Um artigo em andamento sobre como espelhar o FreeBSD, destinado `a
   administradores de hubs.

   [ Documento HTML em partes / Documento HTML completo ]

     ----------------------------------------------------------------------

   Indice

   1. Informac,oes de contato

   2. Requisitos para um site espelho do FreeBSD

   3. Como espelhar o FreeBSD

   4. De onde espelhar

   5. Espelhos Oficiais

   6. Algumas estatisticas dos sites espelho

  Nota:

   Nos nao estamos aceitando novos sites espelho neste momento.

1. Informac,oes de contato

   Os Coordenadores do Sistema de Espelhamento podem ser contatados pelo
   email <mirror-admin@FreeBSD.org>. Existe tambem uma lista de discussao de
   sites espelho do FreeBSD.

2. Requisitos para um site espelho do FreeBSD

  2.1. Espac,o em disco

   O espac,o em disco e um dos requisitos mais importantes. Dependendo do
   conjunto de releases, arquiteturas e grau de cobertura que voce deseja
   espelhar, uma quantidade enorme de espac,o em disco pode ser consumida.
   Tambem tenha em mente que espelhos oficiais provavelmente precisam ser
   completos. As paginas web devem ser sempre espelhadas completamente.
   Observe tambem que os numeros indicados aqui refletem o estado atual (para
   10.4-RELEASE/11.2-RELEASE). Desenvolvimentos adicionais e novas releases
   so aumentarao a quantidade necessaria. Tambem certifique-se de ter algum
   espac,o extra (cerca de 10-20%) apenas para ter certeza de que nao ira
   faltar espac,o. Aqui estao alguns numeros aproximados:

     * Distribuic,ao FTP completa: 1.4 TB

     * Deltas do CTM: 10 GB

     * Paginas Web: 1GB

   O uso atual de disco da Distribuic,ao por FTP pode ser encontrado em
   ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes.

  2.2. Conexao de Rede/Largura de Banda

   Claro, voce precisa estar conectado `a Internet. A largura de banda
   necessaria depende do uso pretendido do site espelho. Se voce quiser
   espelhar apenas algumas partes do FreeBSD para uso na sua rede
   local/intranet, a demanda pode ser muito menor do que se voce quiser
   disponibilizar os arquivos publicamente. Se voce pretende se tornar um
   site espelho oficial, a largura de banda necessaria sera ainda maior.
   Podemos apenas dar estimativas aproximadas aqui:

     * Site local, sem acesso publico: basicamente sem valor minimo, mas se
       for menor que < 2 Mbps, pode deixar a sincronizac,ao bem lenta.

     * Site publico nao oficial: 34 Mbps e provavelmente um bom comec,o.

     * Site oficial: > 100 Mbps e recomendado, e seu host deve estar
       conectado o mais proximo possivel do seu roteador de borda.

  2.3. Requisitos de Sistema, CPU, RAM

   Isto depende muito do numero esperado de clientes, que e determinado pela
   politica do servidor. O dimensionamento tambem e afetado pelo tipo de
   servic,os que voce deseja oferecer. Servic,os FTP ou HTTP simples podem
   nao exigir uma quantidade enorme de recursos. Tenha cuidado se voce
   fornecer o rsync. Isso pode ter um grande impacto nos requisitos de CPU e
   memoria, ja que este servic,o e considerado um devorador de memoria. Os
   exemplos a seguir, visam lhe dar uma ideia simples deste dimensionamento.

   Para um site com visitac,ao moderada o qual oferec,a o servic,o de rsync,
   voce pode considerar uma CPU entre 800 MHz - 1 GHz, e pelo menos 512 MB de
   memoria RAM. Esta e provavelmente a configurac,ao minima para um site
   espelho oficial.

   Para um site com visitac,ao frequente, voce definitivamente vai precisar
   de mais memoria RAM (considere 2 GB como um bom ponto de partida) e
   possivelmente de mais poder de processamento (CPU), o que pode significar
   que voce precisara ir para um sistema multiprocessado (SMP).

   Voce tambem pode querer considerar um subsistema de disco rapido. As
   operac,oes no repositorio SVN requerem um subsistema de disco rapido (o
   RAID e altamente recomendado). Um controlador SCSI que possua um cache
   proprio tambem pode acelerar as coisas, ja que a maioria desses servic,os
   incorrem em um grande numero de pequenas modificac,oes no disco.

  2.4. Servic,os para oferecer

   Todo site espelho e obrigado a disponibilizar um conjunto de servic,os
   basicos. Em adic,ao a estes servic,os obrigatorios, existe um grande
   numero de servic,os opcionais aos quais o administrador do servidor pode
   optar por oferecer. Esta sessao ira detalhar quais servic,os voce pode
   oferecer, bem como implementa-los.

    2.4.1. FTP (necessario para o conjunto de arquivos do FTP)

   Este e um dos servic,os mais basicos, e ele e obrigatorio em todos os
   sites espelhos que oferecem acesso publico `as distribuic,oes via FTP. O
   acesso ao FTP deve ser anonimo, e nao e permitido o uso de nenhum controle
   nas taxas de upload/download (o que seria uma coisa ridicula de qualquer
   maneira). Nao e necessario ter o upload de arquivos habilitado (e isso
   nunca deve ser permitido na area onde os arquivos do FreeBSD sao
   mantidos). Os arquivos do FreeBSD devem ficar disponiveis sob o caminho
   /pub/FreeBSD.

   Existem diversos softwares disponiveis que podem ser configurados para
   operar como um servidor de FTP anonimo. Por exemplo (em ordem alfabetica)

     * /usr/libexec/ftpd: o proprio ftpd do FreeBSD pode ser usado. Nao deixe
       de ler o manual do ftpd(8).

     * ftp/ncftpd: Um pacote comercial, gratis para uso educacional.

     * ftp/oftpd: Um ftpd projetado tendo a seguranc,a como foco principal.

     * ftp/proftpd: Um ftpd modular e muito flexivel.

     * ftp/pure-ftpd: Outro ftpd desenvolvido com seguranc,a em mente.

     * ftp/twoftpd: Mais um ftpd desenvolvido com seguranc,a em mente.

     * ftp/vsftpd: Um ftpd "muito seguro".

   O ftpd nativo do FreeBSD, o proftpd, e talvez o ncftpd sao alguns dos
   servidores de FTP mais utilizados. Os demais nao possuem uma grande base
   de usuarios entre os sites espelhos. Um item a ser considerado e que voce
   pode precisar de flexibilidade para controlar quantas conexoes simultaneas
   serao permitidas no servidor, limitando desta forma o consumo do seu link
   IP e dos demais recursos do sistema.

    2.4.2. Rsync (opcional para o conjunto de arquivos do FTP)

   O Rsync e muitas vezes oferecido para acesso ao conteudo da area 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 e
   diferente do FTP em muitos aspectos. Ele e muito mais amigavel em relac,ao
   ao consumo de banda IP, uma vez que quando um arquivo e alterado ao inves
   de transferi-lo por completo novamente, ele transfere apenas as
   diferenc,as entre as duas versoes do arquivo. O Rsync requer uma grande
   quantidade de memoria para cada instancia. A quantidade de memoria alocada
   depende do tamanho do modulo sincronizado em termos do numero de
   diretorios e de arquivos. O Rsync pode utilizar rsh e o ssh (que agora e
   padrao) para transporte dos dados, ou entao utilizar o seu proprio
   protocolo para acesso stand-alone (este e o metodo preferido para um
   servidor publico de Rsync). Obrigatoriedade de autenticac,ao, limites ao
   numero de conexoes simultaneas e outras restric,oes podem ser aplicadas.
   Ha apenas um pacote de software disponivel para se implementar um servidor
   de Rsync:

     * net/rsync

    2.4.3. HTTP (necessario para as paginas web, opcional para o conjunto de
    arquivos do FTP)

   Se voce deseja disponibilizar as paginas web do FreeBSD, voce vai precisar
   instalar um servidor web. Opcionalmente voce podera oferecer acesso a sua
   arvore de FTP via HTTP. A escolha do software do servidor web e uma
   escolha do administrador do site espelho. As opc,oes mais populares sao:

     * www/apache24: O Apache e o servidor web mais amplamente utilizado na
       internet. Ele e usado extensivamente pelo projeto FreeBSD.

     * www/boa: O Boa e um servidor HTTP single-task. Ao contrario dos
       servidores Web tradicionais, o seu processo nao se divide para cada
       conexao de entrada e nem cria muitas copias de si mesmo para lidar com
       varias conexoes. Entretanto, ele fornece um desempenho excelente para
       conteudo puramente estatico.

     * www/cherokee: O >Cherokee e um servidor web muito rapido, flexivel e
       facil de configurar. Ele suporta as tecnologias difundidas atualmente:
       FastCGI, SCGI, PHP, CGI, conexoes criptografadas por SSL/TLS, vhosts,
       autenticac,ao de usuarios, codificac,ao on the fly e balanceamento de
       carga. Ele tambem gera arquivos de log compativeis com o Apache.

     * www/lighttpd: O lighttpd e um servidor web seguro, rapido, compativel
       com os padroes e muito flexivel o qual foi otimizado para ambientes de
       alto desempenho. Tem um consumo de memoria muito baixo em comparac,ao
       com outros servidores Web, bem como um baixo consumo de CPU.

     * www/nginx: O nginx e um servidor web de alto desempenho com baixo
       consumo de memoria e recursos-chave para construir uma infraestrutura
       web moderna e eficiente. Os recursos incluem um servidor HTTP, proxy
       reverso de HTTP e email, armazenamento em cache, balanceamento de
       carga, compactac,ao, limitac,ao de solicitac,oes, multiplexac,ao e
       reutilizac,ao de conexoes, descarregamento de SSL e streaming de midia
       por HTTP.

     * www/thttpd: Se voce estiver servindo uma grande quantidade de conteudo
       estatico, voce pode descobrir que usar uma aplicac,ao como o thttpd e
       mais eficiente do que outros servidores web. Ele tambem e otimizado
       para ter um excelente desempenho no FreeBSD.

3. Como espelhar o FreeBSD

   Ok, agora voce conhece os requisitos e sabe como oferecer os servic,os,
   mas nao sabe como obte-los. :-) Esta sec,ao explica como realmente
   espelhar as varias partes do FreeBSD, quais ferramentas utilizar e de onde
   espelhar.

  3.1. Espelhando o site FTP

   A area FTP possui a maior quantidade de dados a serem espelhados. Ela
   inclui os conjuntos de distribuic,ao necessarios para a instalac,ao em
   rede, os branches que sao snapshots das arvores de codigo fonte, as
   Imagens ISO para gravar CD-ROMs com a distribuic,ao de instalac,ao, um
   sistema de arquivos ativo e um snapshot da arvore de ports. E claro, tudo
   isso para as varias versoes do FreeBSD e diversas arquiteturas.

   A melhor maneira de espelhar a area FTP e com o rsync. Voce pode instalar
   o port net/rsync e entao usar o rsync para sincronizar com seu host
   upstream. O rsync ja foi mencionado em Sec,ao 2.4.2, "Rsync (opcional para
   o conjunto de arquivos do FTP)". Como o acesso rsync nao e necessario, seu
   site de upstream preferido pode nao permitir isso. Talvez voce precise
   procurar um pouco mais para localizar um site que permita acesso por
   rsync.

  Nota:

   Como o numero de clientes rsync tera um impacto significativo na
   performance do servidor, a maioria dos administradores impoe limitac,oes
   em seus servidores. Para um espelho, voce deve perguntar ao mantenedor do
   site com o qual voce esta sincronizando sobre sua politica, e talvez pedir
   uma excec,ao para o seu host (ja que voce tambem e um site espelho).

   Um exemplo de linha de comando para espelhar o FreeBSD pode ser verificada
   abaixo:

 % rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/

   Consulte a documentac,ao do rsync, que tambem esta disponivel em
   http://rsync.samba.org/, sobre as varias opc,oes a serem usadas com o
   rsync. Se voce sincronizar o modulo inteiro (diferentemente dos
   subdiretorios), esteja ciente de que o diretorio do modulo (aqui
   "FreeBSD") nao sera criado, entao voce nao pode omitir o diretorio de
   destino. Alem disso, voce pode querer configurar um script que chame tal
   comando via cron(8).

  3.2. Espelhando as paginas WWW

   O site do FreeBSD deve ser espelhado apenas via rsync.

   Uma linha de comando para espelhar o site do FreeBSD pode parecer com:

 % rsync -vaHz --delete rsync://bit0.us-west.freebsd.org/FreeBSD-www-data/ /usr/local/www/

  3.3. Espelhando os Pacotes

   Devido a exigencias muito altas de largura de banda, armazenamento e
   administrac,ao, o Projeto FreeBSD decidiu nao permitir espelhos publicos
   de pacotes. Para sites com muitas maquinas, pode ser vantajoso executar um
   proxy HTTP para fazer cache do pkg(8). Alternativamente, pacotes
   especificos e suas dependencias podem ser baixados executando algo assim:

 % pkg fetch -d -o /usr/local/mirror vim

   Quando esses pacotes forem baixados, os metadados do repositorio devem ser
   gerados executando:

 % pkg repo /usr/local/mirror

   Uma vez que os pacotes tenham sido baixados e os metadados para o
   repositorio tenham sido gerados, sirva os pacotes ate as maquinas clientes
   via HTTP. Para obter informac,oes adicionais, consulte as paginas de
   manual do pkg(8), mais especificamente a pagina pkg-repo(8).

  3.4. Com que frequencia eu devo atualizar o conteudo do meu espelho?

   Todo site espelho deve ser atualizado no minimo uma vez por dia.
   Certamente, um script com bloqueio para impedir que varias execuc,oes
   ocorram ao mesmo tempo sera necessario para executar a partir do cron(8).
   Como quase todo administrador faz isso `a sua maneira, instruc,oes
   especificas nao podem ser fornecidas. Mas poderia ser algo como:

    1. Coloque o comando para executar seu aplicativo de espelhamento em um
       script. Recomenda-se o uso de um script simples /bin/sh.

    2. Adicione alguns redirecionamentos de saida para que as mensagens de
       diagnostico sejam registradas em um arquivo.

    3. Teste se o seu script funciona. Verifique os logs.

    4. Use o crontab(1) para adicionar o script ao crontab(5) do usuario
       apropriado. Este deve ser um usuario diferente daquele sob o qual o
       daemon FTP esta sendo executado, de forma que, se as permissoes de
       arquivo dentro de sua area FTP nao forem legiveis por todos, esses
       arquivos nao poderao ser acessados &#8203;&#8203;por FTP anonimo. Isto
       e usado para fazer o "stage" de uma release - assegurando que todos os
       sites espelhos oficiais tenham todos os arquivos necessarios da
       release no dia do lanc,amento.

   Aqui estao alguns agendamentos recomendados:

     * Conjunto de arquivos FTP: diariamente

     * Paginas WWW: diariamente

4. De onde espelhar

   Esta e uma questao importante. Entao, esta sec,ao vai gastar algum
   esforc,o para explicar mais a fundo. Nos diremos isso varias vezes: sob
   nenhuma circunstancia voce deve espelhar a partir do ftp.FreeBSD.org.

  4.1. Algumas palavras sobre a organizac,ao

   Os espelhos sao organizados por pais. Todos os espelhos oficiais possuem
   uma entrada de DNS no formato ftpN.CC.FreeBSD.org. O CC (ou seja, o codigo
   do pais) e o dominio de nivel superior (TLD) do pais onde esse espelho
   esta localizado. N e um numero, dizendo que o host seria o espelho Nth
   daquele pais. (O mesmo se aplica a wwwN.CC.FreeBSD.org, etc.) Ha espelhos
   sem partes CC. Esses sao os sites espelhos que sao muito bem conectados e
   permitem um grande numero de usuarios simultaneos. O ftp.FreeBSD.org e na
   verdade duas maquinas, uma atualmente localizada na Dinamarca e outra nos
   Estados Unidos. Este NAO e um site mestre e nunca deve ser usado para se
   espelhar. Muitos documentos on-line conduzem os usuarios "interativos"
   para ftp.FreeBSD.org, portanto os sistemas automatizados de espelhamento
   devem utilizar uma maquina diferente para se espelhar.

   Alem disso, existe uma hierarquia de espelhos, descrita em termos de
   camadas. Os sites mestres nao sao referenciados, mas podem ser descritos
   como Tier-0. Espelhos que espelham desses sites podem ser considerados
   Tier-1, espelhos de Tier-1mirrors, saoTier-2, etc. Os sites oficiais sao
   encorajados a ter um nivel baixo, mas quanto mais baixo o nivel, maiores
   os requisitos em termos, conforme descrito em Sec,ao 2, "Requisitos para
   um site espelho do FreeBSD". Tambem o acesso a espelhos de baixo nivel
   pode ser restrito, e o acesso a sites mestres e definitivamente restrito.
   A tier-hierarchy nao e refletida pelo DNS e geralmente nao e documentada
   em nenhum lugar, exceto nos sites mestres. No entanto, os espelhos
   oficiais com numeros baixos como 1-4, geralmente sao Tier-1 (isso e apenas
   uma dica, e nao ha regra).

  4.2. Ok, mas de onde devo baixar os arquivos agora?

   Em nenhuma circunstancia voce deve espelhar a partir de ftp.FreeBSD.org. A
   resposta simples e: do site que esta mais proximo de voce em termos de
   Internet ou que lhe oferec,a o acesso mais rapido.

    4.2.1. Eu so quero espelhar de algum lugar!

   Se voce nao tem nenhuma intenc,ao ou requisito especial, a declarac,ao em
   Sec,ao 4.2, "Ok, mas de onde devo baixar os arquivos agora?" se aplica.
   Isso significa:

    1. Verifique quais fornecem acesso mais rapido (numero de saltos, tempos
       de ida e volta) e oferec,am os servic,os que voce pretende usar (como
       rsync).

    2. Entre em contato com os administradores do site escolhido, informando
       sua solicitac,ao e perguntando sobre seus termos e politicas.

    3. Configure o seu espelho conforme descrito acima.

    4.2.2. Eu sou um espelho oficial, qual e o site certo para mim?

   Em geral, a descric,ao em Sec,ao 4.2.1, "Eu so quero espelhar de algum
   lugar!" ainda se aplica. E claro que voce pode querer colocar algum peso
   no fato de que seu upstream deve ser de nivel baixo. Existem algumas
   outras considerac,oes sobre os espelhos oficiais que sao descritos em
   Sec,ao 5, "Espelhos Oficiais".

    4.2.3. Eu quero acessar os sites principais!

   Se voce tiver boas razoes e pre-requisitos, podera querer e obter acesso a
   um dos sites mestres. O acesso a esses sites e geralmente restrito e
   existem politicas especiais para acesso. Se voce ja e um espelho oficial,
   isso certamente ira ajudar voce a obter acesso. Em qualquer outro caso,
   certifique-se de que seu pais realmente precisa de outro espelho. Se ja
   tiver tres ou mais, pergunte ao "administrador de
   regiao"(<hostmaster@CC.FreeBSD.org>) ou Listas de discussao de sites
   espelho do FreeBSD primeiro.

   Quem ajudou voce a se tornar um espelho oficial deve ajudar voce a obter
   acesso a um host de upstream apropriado, seja um dos sites mestres ou um
   site Tier-1 adequado. Caso contrario, voce pode enviar um email para
   <mirror-admin@FreeBSD.org> para solicitar ajuda com isso.

   Existe um site principal para o conjunto de arquivos FTP.

      4.2.3.1. ftp-master.FreeBSD.org

   Este e o site principal do conjunto de arquivos FTP.

   O ftp-master.FreeBSD.org fornece acesso por rsync, alem do acesso normal
   por FTP. Consulte Sec,ao 3.1, "Espelhando o site FTP".

   Os espelhos tambem sao encorajados a permitir acesso por rsync para o
   conteudo FTP, ja que eles sao espelhos de Tier-1.

5. Espelhos Oficiais

   Espelhos oficiais sao os espelhos que

     * a) tem uma entrada de DNS FreeBSD.org (geralmente um CNAME).

     * b) sao listados como um espelho oficial na documentac,ao do FreeBSD
       (como no Handbook).

   Ate agora, para distinguir espelhos oficiais. Espelhos oficiais nao sao
   necessariamente espelhos Tier-1. No entanto, voce provavelmente nao
   encontrara um espelho Tier-1 que tambem nao e oficial.

  5.1. Requisitos especiais para sites espelhos oficiais (Tier-1)

   Nao e tao facil declarar os requisitos para todos os sites espelhos
   oficiais, uma vez que o projeto e um pouco tolerante aqui. E mais facil
   dizer o que um site espelho oficial Tier-1 precisa ter. Todos os outros
   sites espelhos oficiais podem considerar isto como um grande deve.

   Os sites espelhos Tier-1 precisam:

     * ter o conjunto completo de arquivos

     * permitir acesso a outros sites espelho

     * fornecer acesso por FTP e rsync

   Alem disso, os administradores devem estar inscritos nas listas de
   discussao de sites espelho do FreeBSD. Consulte este link para obter
   detalhes em como se inscrever.

  Importante:

   E muito importante para um administrador de hub, especialmente
   administradores de hub de Tier-1, verificar o calendario de lanc,amentos
   para a proxima versao do FreeBSD. Isto e importante porque lhe dira quando
   o proximo lanc,amento esta programado para sair, e assim lhe dara tempo
   para se preparar para o grande pico de trafego que vira.

   Tambem e importante que os administradores do hub tentem manter seus
   espelhos o mais atualizados possivel (novamente, ainda mais importante
   para os espelhos Tier-1). Se o Mirror1 nao for atualizado por um tempo, os
   espelhos de camada inferior comec,arao a espelhar os dados antigos do
   Mirror1 e, portanto, iniciara uma espiral descendente... Mantenha seus
   espelhos atualizados!

  5.2. Como se tornar um site espelho oficial?

   Nao estamos aceitando novos sites espelhos neste momento.

6. Algumas estatisticas dos sites espelho

   Aqui estao os links para as paginas de estatisticas dos seus sites espelho
   favoritos (tambem conhecidos como os unicos que tem a boa vontade de
   fornecer as estatisticas).

  6.1. Estatisticas do site FTP

     * ftp.is.FreeBSD.org - < hostmaster@is.FreeBSD.org > - (Largura de
       Banda) (Processos FTP) (Processos HTTP)

     * ftp2.ru.FreeBSD.org - < mirror@macomnet.ru > - (Largura de Banda)
       (Usuarios HTTP e FTP)
