Mirror ou Proxy-cache?

1. Mirror ou Proxy-cache?

Marcos Luiz Rezende de Melo
mlrmelo

(usa Fedora)

Enviado em 28/04/2016 - 13:06h

Seguinte...
Preciso criar uma série de repositórios aqui no meu trabalho (Debian, CentOS e Ubuntu).
O objetivo é atender a cerca de 150 "filiais" (no momento, apontamos para os repositórios oficiais). Mas a principal motivação é retirar o acesso dos servidores à internet. Assim, os servidores veriam apenas esses repositórios e, estes sim, veriam a internet. De quebra, ganharíamos velocidade nas atualizações das estações e economizaríamos largura de banda, pois tudo seria dentro da nossa LAN/MAN.
Ainda estou em fase de projeto. Comecei pelo Debian. Baixei os scripts do site oficial, mas ele só tem documentação para fazer um mirror COM PUSH. Sei que essa é a política do Debian atualmente, mas a seção encarregada da segurança não quer permitir PUSH... No pacote pra download até tem um outro script para fazer PULL, mas não tem qualquer documentação...
Recentemente, sugeriram fazer um proxy-cash, pois não precisaríamos ter armazenado um monte de pacotes desnecessários (somente seriam armazenados à medida que fossem solicitados).

Aí, surgiram as dúvidas:
1) Um proxy-cache é realmente mais eficiente que um mirror? Comparado, claro, com um mirror seletivo (não vou espelhar todas as plataformas, apenas amd64 e x86)
2) No caso de atualizações (principal motivo do repositório local), essas são vistas pelos clientes, se for adotado proxy-cache ou somente se for mirror? Explico a minha dúvida: Se os pacotes só são trazidos à medida que são solicitados, como fica a questão das atualizações? Ex: ao fazer um apt-get upgrade (ou dist-upgrade), como o proxy vai saber se há atualizações importantes ou se tem uma nova release?
3) No caso de montar um mirror PULL, como fazer para descobrir o horário certo de fazer o sincronismo? Não achei nenhum lugar informando isso.

Agradeço a colaboração.


  


2. Re: Mirror ou Proxy-cache?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/04/2016 - 15:10h


Aí, surgiram as dúvidas:
1) Um proxy-cache é realmente mais eficiente que um mirror? Comparado, claro, com um mirror seletivo (não vou espelhar todas as plataformas, apenas amd64 e x86)


A minha opinião é melhor um mirror, pois ele baixa de uma vez só todos os dias o repositório e não fica baixando aos poucos. Particularmente, não vejo vantagens um proxy-cache.


2) No caso de atualizações (principal motivo do repositório local), essas são vistas pelos clientes, se for adotado proxy-cache ou somente se for mirror? Explico a minha dúvida: Se os pacotes só são trazidos à medida que são solicitados, como fica a questão das atualizações? Ex: ao fazer um apt-get upgrade (ou dist-upgrade), como o proxy vai saber se há atualizações importantes ou se tem uma nova release?


Eu não sei dizer sobre o proxy-cache, mas o mirror fica atualizado sempre q vc consulta com o apt-get upgrade (mas tem q executar antes o apt-get update pra ficar atualizado).


3) No caso de montar um mirror PULL, como fazer para descobrir o horário certo de fazer o sincronismo? Não achei nenhum lugar informando isso.


O horário certo depende das suas rotinas. Observe em que período do dia (24 h) em q ponto o seu servidor ocupa menos recurso e em q ponto q a sua infra-estrutura está mais ociosa pra fazer a transferência dos arquivos. Por isso q não há nada escrito por ae...

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


3. Re: Mirror ou Proxy-cache?

Fabiano
fpires

(usa Debian)

Enviado em 28/04/2016 - 16:13h

Um mirror vai baixar dúzias de pacotes desncessários a servidores (ex: LibreOffice, Ambientes Gráficos, etc). O Proxy baixa apenas o necessário. Para Debian, existem os seguintes pacotes:
* apt-cacher - proxy apt
* apt-cacher-ng - creio que é um fork da versão acima
* squid-deb-proxy - conjunto de arquivos para configurar e executar uma segunda instância do squid, otimizada para caching de arquivos deb.

Você pode utilizar um pacote como o cron-apt para realizar o apt-get update e baixar os pacotes, e você atualiza mais tarde. Agende um servidor para baixar os pacotes mais cedo, talvez fora do horário de expediente (para popular o proxy) e os outros pegarão os arquivos do proxy. Eu utilizo o apt-cacher-ng, com muito sucesso.


4. Re: Mirror ou Proxy-cache?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/04/2016 - 16:56h

fpires escreveu:

Um mirror vai baixar dúzias de pacotes desncessários a servidores (ex: LibreOffice, Ambientes Gráficos, etc). O Proxy baixa apenas o necessário. Para Debian, existem os seguintes pacotes:
* apt-cacher - proxy apt
* apt-cacher-ng - creio que é um fork da versão acima
* squid-deb-proxy - conjunto de arquivos para configurar e executar uma segunda instância do squid, otimizada para caching de arquivos deb.

Você pode utilizar um pacote como o cron-apt para realizar o apt-get update e baixar os pacotes, e você atualiza mais tarde. Agende um servidor para baixar os pacotes mais cedo, talvez fora do horário de expediente (para popular o proxy) e os outros pegarão os arquivos do proxy. Eu utilizo o apt-cacher-ng, com muito sucesso.


Interessante, cara. Uma dúvida: como é definido os pacotes necessários? É de acordo com o acesso ao proxy? Se eu entendi direito, o primeiro acesso é pela Internet e o próximo é realizado no proxy, correto?

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


5. Re: Mirror ou Proxy-cache?

Fabiano
fpires

(usa Debian)

Enviado em 28/04/2016 - 17:38h

renato_pacheco escreveu:
Interessante, cara. Uma dúvida: como é definido os pacotes necessários? É de acordo com o acesso ao proxy? Se eu entendi direito, o primeiro acesso é pela Internet e o próximo é realizado no proxy, correto?


Exatamente. Imagine que você tenha 5 servidores Debian 8. Ao atualizar o primeiro servidor (apt-get update && apt-get upgrade) o servidor solicita os arquivos ao proxy, que por sua vez os pega na internet. Quando os outros servidores solicitarem os mesmos arquivos, o proxy verifica que já há uma cópia local dos mesmos e fornece os arquivos que estão no cache local, acelerando o processo e poupando banda (exatamente como funciona em um proxy "normal", para navegação web).


6. Re: Mirror ou Proxy-cache?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/04/2016 - 17:42h

fpires escreveu:

renato_pacheco escreveu:
Interessante, cara. Uma dúvida: como é definido os pacotes necessários? É de acordo com o acesso ao proxy? Se eu entendi direito, o primeiro acesso é pela Internet e o próximo é realizado no proxy, correto?


Exatamente. Imagine que você tenha 5 servidores Debian 8. Ao atualizar o primeiro servidor (apt-get update && apt-get upgrade) o servidor solicita os arquivos ao proxy, que por sua vez os pega na internet. Quando os outros servidores solicitarem os mesmos arquivos, o proxy verifica que já há uma cópia local dos mesmos e fornece os arquivos que estão no cache local, acelerando o processo e poupando banda (exatamente como funciona em um proxy "normal", para navegação web).


Muito interessante! Nós aqui fazemos mirror mesmo, mas fazemos os downloads na madrugada. Por enquanto, não é impedimento para nós mantermos os pacotes desnecessários e gastar essa banda nesse período, mas é bom saber q existe uma alternativa para isso. A única coisa q me preocupa é se a configuração de proxy-cache é complicada...

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


7. Tentando explicar as dúvidas...

Marcos Luiz Rezende de Melo
mlrmelo

(usa Fedora)

Enviado em 02/05/2016 - 10:24h

Acho que talvez as minhas dúvidas não tenham ficado claras...
Vamos lá...
1) Estes mirrors ou proxy-caches não atenderão somente aos servidores. A principal razão são os servidores, mas, uma vez que os tenhamos, eles servirão também aos desktops... Assim, por exemplo, o LibreOffice não é "desnecessário", visto que todas as estações de trabalho o utilizam...
2) O horário pra sincronismo a que eu me referi não é o que fica melhor pra mim... Posso agendar pra sincronizar de madrugada, sem problemas... A pergunta é: " A que horas o mirror primário (ou secundário) de onde eu vou espelhar estará disponível para que eu sincronize, a fim de não fazer um sincronismo no meio da sincronização dele e assim, pegar pacotes quebrados. (Será que consegui me explicar?)
3) Quanto à questão do proxy-cache "saber" das "novidades"... Sei que um web-proxy, ao receber uma solicitação, verifica, primeiro, se a página armazenada em cache está atualizada ou não e, se necessário atualiza antes de fornecê-la ao browser. Acredito que o proxy-cache também faça isso (não posso afirmar, mas é uma dedução lógica). O problema é, por exemplo, se houver uma atualização de segurança importante, que nunca tenha sido pesquisada (lembram-se da última atualização do SSH?), como é que o proxy fica sabendo dessa atualização? Ou isso só vai acontecer se alguém for tentar instalar o tal pacote ou fizer o apt-get upgrade? Ou ainda... Como fica a atualização de versões? Ex: Se eu tiver um proxy-cache do Debian 8, como ele "fica sabendo" quando sair o Debian 9? (no caso do Ubuntu, saiu agora o 16.04, mas em outubro sai o 16.10...)
4) Quanto às vantagens de um de e de outro... O proxy-cache é mais econômico em termos de espaço, mas os pacotes que não estiverem em cache (e, se minha dedução acima estiver correta, os defasados também) serão trazidos, mais provavelmente em durante o expediente e não durante a madrugada. O mirror, fará o sincronismo no horário que me for mais conveniente e a instalação durante o expediente será sempre pela LAN, nunca pela internet. Além disso, eu tenho garantia de que estou atualizado. Em compensação, gasta uma enormidade de espaço. A pergunta, então, é: Ter um cache compensa ou é melhor ter um mirror, levando em conta que temos hoje, somente considerando os servidores, mais de 100 máquinas e se levarmos em conta os desktops, passa de 4000 máquinas?


8. Re: Mirror ou Proxy-cache?

Fabiano
fpires

(usa Debian)

Enviado em 02/05/2016 - 13:47h

Por partes:

mlrmelo escreveu:

Acho que talvez as minhas dúvidas não tenham ficado claras...
Vamos lá...
1) Estes mirrors ou proxy-caches não atenderão somente aos servidores. A principal razão são os servidores, mas, uma vez que os tenhamos, eles servirão também aos desktops... Assim, por exemplo, o LibreOffice não é "desnecessário", visto que todas as estações de trabalho o utilizam...

LibreOffice foi um exemplo. Poderia dizer outros pacotes como tomcat7, tomcat8 (duas versões diferentes do mesmo software), nginx, pop3d, e vários outros. Provavelmente você não precisa de tudo. A página https://www.debian.org/mirror/size.en.html dá uma idéia do tamanho dos repositórios com base na arquitetura. Normalmente você vai utilizar amd64 (para servidores de 32/64 bits) + all (que são pacotes independentes de arquitetura, como scripts em python, bash e PHP)

2) O horário pra sincronismo a que eu me referi não é o que fica melhor pra mim... Posso agendar pra sincronizar de madrugada, sem problemas... A pergunta é: " A que horas o mirror primário (ou secundário) de onde eu vou espelhar estará disponível para que eu sincronize, a fim de não fazer um sincronismo no meio da sincronização dele e assim, pegar pacotes quebrados. (Será que consegui me explicar?)

Agora ficou mais claro. A página https://www.debian.org/mirror/ftpmirror#when dá detalhes sobre os horários em que os mirrors principais sincronizam, como checar se já sincronizaram e quando fazer o sync. Você também falou sobre PUSH, mas para isso deverá disponibilizar seu mirror para uso da comunidade, o que incorre em custos de banda.


3) Quanto à questão do proxy-cache "saber" das "novidades"... Sei que um web-proxy, ao receber uma solicitação, verifica, primeiro, se a página armazenada em cache está atualizada ou não e, se necessário atualiza antes de fornecê-la ao browser. Acredito que o proxy-cache também faça isso (não posso afirmar, mas é uma dedução lógica). O problema é, por exemplo, se houver uma atualização de segurança importante, que nunca tenha sido pesquisada (lembram-se da última atualização do SSH?), como é que o proxy fica sabendo dessa atualização? Ou isso só vai acontecer se alguém for tentar instalar o tal pacote ou fizer o apt-get upgrade? Ou ainda... Como fica a atualização de versões? Ex: Se eu tiver um proxy-cache do Debian 8, como ele "fica sabendo" quando sair o Debian 9? (no caso do Ubuntu, saiu agora o 16.04, mas em outubro sai o 16.10...)

Proxy de pacotes (como o apt-cacher) são web-proxies. O funcionamento é essencialmente o mesmo.Ele não sabe de novidades, ele apenas baixa o que seu usuário pede, com apt-get update && apt-get upgrade. Mas o mirror também funciona assim.... Se ninguém executar apt-get update && apt-get upgrade a atualização não sai do mirror pro server/desktop... E no caso do mirror, você precisa definir quais as versões (Debian 8, Debian 9 ...) serão espelhadas.


4) Quanto às vantagens de um de e de outro... O proxy-cache é mais econômico em termos de espaço, mas os pacotes que não estiverem em cache (e, se minha dedução acima estiver correta, os defasados também) serão trazidos, mais provavelmente em durante o expediente e não durante a madrugada. O mirror, fará o sincronismo no horário que me for mais conveniente e a instalação durante o expediente será sempre pela LAN, nunca pela internet. Além disso, eu tenho garantia de que estou atualizado. Em compensação, gasta uma enormidade de espaço. A pergunta, então, é: Ter um cache compensa ou é melhor ter um mirror, levando em conta que temos hoje, somente considerando os servidores, mais de 100 máquinas e se levarmos em conta os desktops, passa de 4000 máquinas?





9. Então...

Marcos Luiz Rezende de Melo
mlrmelo

(usa Fedora)

Enviado em 02/05/2016 - 16:33h

Obrigado, FPires...
Então...
No caso do Mirror, se eu sincronizar a pasta dists, aparecendo lá uma pasta "stretch" (codinome da próxima versão do Debian até o momento) automaticamente, estará no meu repositório. Mas no caso de cache, até onde eu sei, isso não acontecerá. Ou estou errado?
Outra... Pelo que entendi, acho que você se enganou a respeito do mirror... Você disse que também o mirror só veria as atualizações se eu fizesse um apt-get update, apt-get upgrade ou apt-get dist-upgrade. Acho que isso seria se fosse cache, pois o mirror é feito sincronismo do diretório. Assim, não dependeria de "solicitar" os pacotes, mas toda vez que rodar o rsync, trarei as "novidades". Ou será que estou errado?


10. Mais uma dúvida...

Marcos Luiz Rezende de Melo
mlrmelo

(usa Fedora)

Enviado em 02/05/2016 - 16:39h

Acrescentando mais um quetionamento...
Como disse no post que abre esse tópico, preciso criar uma série de repositórios: Debian, CentOS e Ubuntu.
Aí surge a pergunta básica: "Dá pra fazer tudo em uma única máquina, ou tenho de ter uma máquina para cada um?"


11. Re: Mirror ou Proxy-cache?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 02/05/2016 - 16:41h

mlrmelo escreveu:

Acrescentando mais um quetionamento...
Como disse no post que abre esse tópico, preciso criar uma série de repositórios: Debian, CentOS e Ubuntu.
Aí surge a pergunta básica: "Dá pra fazer tudo em uma única máquina, ou tenho de ter uma máquina para cada um?"


Dá pra fazer na mesma máquina, pois a diferença entre um e outro é o usuário q vc cria. No meu caso, em uma mesma máquina, possuo repositório do Debian e Ubuntu.

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


12. Re: Mirror ou Proxy-cache?

Fabiano
fpires

(usa Debian)

Enviado em 05/05/2016 - 17:02h

mlrmelo escreveu:

Obrigado, FPires...
Então...
No caso do Mirror, se eu sincronizar a pasta dists, aparecendo lá uma pasta "stretch" (codinome da próxima versão do Debian até o momento) automaticamente, estará no meu repositório. Mas no caso de cache, até onde eu sei, isso não acontecerá. Ou estou errado?
Outra... Pelo que entendi, acho que você se enganou a respeito do mirror... Você disse que também o mirror só veria as atualizações se eu fizesse um apt-get update, apt-get upgrade ou apt-get dist-upgrade. Acho que isso seria se fosse cache, pois o mirror é feito sincronismo do diretório. Assim, não dependeria de "solicitar" os pacotes, mas toda vez que rodar o rsync, trarei as "novidades". Ou será que estou errado?


O mirror "vê" as atualizações sempre que é sincronizado, mas os clientes (sejam servidores ou desktops) só se beneficiam delas após solicitar atualizações com a dupla apt-get update e apt-get upgrade. Isso é igual, independente de utilizar mirror, proxy ou conexão direta. O arquivo/atualização estando no mirror não é "empurrado" para os clientes.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts