Grupo LVM compartilhado entre dois Dom0 dá pau?

51 views
Skip to first unread message

Welington R. Braga

unread,
Jul 17, 2009, 2:50:07 AM7/17/09
to Lista de discussão XEN-BR
Salve,

Estou para configurar duas máquinas como Dom0 acessando um grupo de
volume LVM que está em um SAN. Mais ou menos como no esquema abaixo:

vl_virtual0
/
Maquina1-Dom0 -- vl-Virtual1
\ /
(SAN) gvXen ---- vl-Virtual2
/ \
Maquina2-Dom0 -- vl-Virtual3
\
vl_Virtual4


Cada volume "vl-VirtualX é um volume lógico com o sistema operacional
de uma domU. Todas elas já rodam na "Maquina1-Dom0", mas eu pretendo
levantar a "Maquina2-dom0" passar pra ela as Domus que estão em
vl_Virtual3 e vl_Virtual4.

Vejam que o grupo de volume gvXen (que está no San) será visto/usado
por ambos os servidores, mas os volumes lógicos só estarão em uso por
uma máquina de cada vez. Isso é confiável, ou não funciona?

Eu já dei umas pesquisadas por ai, mas não achei nada muito
elucidativo. Vários links referem-se ao clvm, mas não dizem nada a
respeito. Olhei a documentação do CentOS[1] - que diga-se de passagem
é muito boa - mas não tem nada que me responda a esta dúvida. O manual
do LVM diz que ele não suporta cluster, mas ao mesmo tempo mostra
como compartilhar volumes[2].

Alguns textos inclusive citam o GFS. A documentação da Redhat e do
CentOS principalmente (eles estão vendendo o peixe), mas pro meu caso
que cada volume será visto por apenas uma máquina acho que não teria
necessidade de colocar a raiz de todos os meus Domus como gfs, ou
teria? Se eu quiser compartilhar arquivos entre as Domus eu faço como
tenho feito desde o tempo da Internet à vapor (com NFS). Eu achei
também uma discussão em [3] mas também não trouxe nenhuma luz nesse
túnel.

Ao que parece não há informações muito claras sobre este tipo de
configuração que (IMO) se tornará cada vez mais comum com o
crescimento do mercado de sistemas de virtualização.

O sistema das minhas dom0's é o Debian Lenny com Xen 3.4.0 e das
Domus o Lenny e Etch.

Aceito sugestões, palpites, links e que mais puder ajudar.

Grato.

[1] Creating LVM Volume in a cluster -
http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/cluster_setup.html
[2] Sharing Volumes on LVM - http://tldp.org/HOWTO/LVM-HOWTO/sharinglvm1.html
[3] is LVM cluster-aware? -
http://www.nabble.com/is-LVM-cluster-aware--td15070306.html
--
Welington Rodrigues Braga
--------------
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype: welrbraga
PGP Key: 0x6C7654EB
Linux User #253605

"Em tudo somos atribulados, porém não angustiados; perplexos, porém
não desanimados; perseguidos, porém não desamparados; abatidos, porém
não destruídos;" - 2Co 4:8,9

Flavio Junior

unread,
Jul 17, 2009, 9:13:43 AM7/17/09
to xen...@googlegroups.com
2009/7/17 Welington R. Braga <welr...@gmail.com>

Salve,

Namaste...
 


Estou para configurar duas máquinas como Dom0 acessando um grupo de
volume LVM que está em um SAN. Mais ou menos como no esquema abaixo:

                                        vl_virtual0
                                       /
Maquina1-Dom0               -- vl-Virtual1
                      \             /
                (SAN)  gvXen ---- vl-Virtual2
                     /              \
Maquina2-Dom0               -- vl-Virtual3
                                       \
                                        vl_Virtual4

Não entendi muito bem..
Tu ta querendo um VG compartilhado entre duas maquinas?
 Se sim, isso é CLVMD... Eu o uso e funciona muito bem. Porem, o clvmd depende de alguma cluster-stack, ai tu vai ter que usar openais/corosync ou rhcs, o que vais ter q avaliar o valor beneficio/complexidade.

 Se não, tu não pode usar o mesmo VG, mas nada te impede de ter 2 VG's na SAN e definir um VG como ativo pra cada Dom0, no caso de uma pane na Maquina1, tu so precisa levantar os LV dela na Maquina2.
 


Cada volume "vl-VirtualX é um volume lógico com o sistema operacional
de uma domU. Todas elas já rodam na "Maquina1-Dom0", mas eu pretendo
levantar a "Maquina2-dom0" passar pra ela as Domus que estão em
vl_Virtual3 e vl_Virtual4.

Não vai ser tão simples, pq se tu criar um segundo VG, tu não pode mover os LV.. tu só pode mover PV's, e assim so se tu tiver bem definido qual LV ta em qual PV pra poder fazer isso sem um esquema de dd/rsync.
 


Vejam que o grupo de volume gvXen (que está no San) será visto/usado
por ambos os servidores, mas os volumes lógicos só estarão em uso por
uma máquina de cada vez. Isso é confiável, ou não funciona?

Como disse, separe por VG's e nao por LV's, se não tu vai ferrar a integridade dos metadados do LVM.
 


Eu já dei umas pesquisadas por ai, mas não achei nada muito
elucidativo. Vários links referem-se ao clvm, mas não dizem nada a
respeito. Olhei a documentação do CentOS[1] - que diga-se de passagem
é muito boa - mas não tem nada que me responda a esta dúvida. O manual
do LVM diz que ele não suporta cluster, mas  ao mesmo tempo mostra
como compartilhar volumes[2].

Alguns textos inclusive citam o GFS. A documentação da Redhat e do
CentOS principalmente (eles estão vendendo o peixe), mas pro meu caso
que cada volume será visto por apenas uma máquina acho que não teria
necessidade de colocar a raiz de todos os meus Domus como gfs, ou
teria? Se eu quiser compartilhar arquivos entre as Domus eu faço como
tenho feito desde o tempo da Internet à vapor (com NFS). Eu achei
também uma discussão em [3] mas também não trouxe nenhuma luz nesse
túnel.

Eu recomendo o #lvm no irc.freenode.net - o pessoal lá ta sempre pronto pra ajudar.
 


Ao que parece não há informações muito claras sobre este tipo de
configuração que (IMO) se tornará cada vez mais comum com o
crescimento do mercado de sistemas de virtualização.

O sistema das minhas dom0's  é o Debian Lenny com Xen 3.4.0 e das
Domus o Lenny e Etch.

Aceito sugestões, palpites, links e que mais puder ajudar.

Grato.

[1] Creating LVM Volume in a cluster -
http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/cluster_setup.html
[2] Sharing Volumes on LVM - http://tldp.org/HOWTO/LVM-HOWTO/sharinglvm1.html
[3] is LVM cluster-aware? -
http://www.nabble.com/is-LVM-cluster-aware--td15070306.html
--
Welington Rodrigues Braga
--------------
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype:  welrbraga
PGP Key: 0x6C7654EB
Linux User #253605



--

Flávio do Carmo Júnior aka waKKu

Welington R. Braga

unread,
Jul 17, 2009, 10:51:48 AM7/17/09
to xen...@googlegroups.com
2009/7/17 Flavio Junior <bil...@gmail.com>:
> 2009/7/17 Welington R. Braga <welr...@gmail.com>
>>
>> Salve,
>
> Namaste...

Opa,
>
>>
>> Estou para configurar duas máquinas como Dom0 acessando um grupo de
>> volume LVM que está em um SAN. Mais ou menos como no esquema abaixo:
>>
>>                                         vl_virtual0
>>                                        /
>> Maquina1-Dom0               -- vl-Virtual1
>>                       \             /
>>                 (SAN)  gvXen ---- vl-Virtual2
>>                      /              \
>> Maquina2-Dom0               -- vl-Virtual3
>>                                        \
>>                                         vl_Virtual4
>
> Não entendi muito bem..
> Tu ta querendo um VG compartilhado entre duas maquinas?
>  Se sim, isso é CLVMD... Eu o uso e funciona muito bem. Porem, o clvmd
> depende de alguma cluster-stack, ai tu vai ter que usar openais/corosync ou
> rhcs, o que vais ter q avaliar o valor beneficio/complexidade.
>

Pelo que eu andei lendo acho que é isso mesmo. Mas não achei nada que
facilite a configuração do clvmd. Você tem algum link para sugerir?

Eu achei dois links [4] e [5], mas cada um diz uma coisa e no fim das
contas não sei se é pra fazer só um ou só o outro, ou ainda os dois.
Um diz que basta alterar o locking do lvm o outro precisa mexer no
arquivo de configuração cluster.conf...

Será que ninguém escreveu sobre este tipo de cenário, ainda!?

>  Se não, tu não pode usar o mesmo VG, mas nada te impede de ter 2 VG's na
> SAN e definir um VG como ativo pra cada Dom0, no caso de uma pane na
> Maquina1, tu so precisa levantar os LV dela na Maquina2.
>

Eu vi comentário sobre usar dois VGs, mas como você disse eu não vou
ter como compartilhar os vbds entre os servidores.

>>
>> Cada volume "vl-VirtualX é um volume lógico com o sistema operacional
>> de uma domU. Todas elas já rodam na "Maquina1-Dom0", mas eu pretendo
>> levantar a "Maquina2-dom0" passar pra ela as Domus que estão em
>> vl_Virtual3 e vl_Virtual4.
>
> Não vai ser tão simples, pq se tu criar um segundo VG, tu não pode mover os
> LV.. tu só pode mover PV's, e assim so se tu tiver bem definido qual LV ta
> em qual PV pra poder fazer isso sem um esquema de dd/rsync.
>

Com o CLVM, não seria possivel compartilhar os volumes lógicos ? O que
me deixa confuso quanto a isso é que se eu pego um tutorial como o [6]
o que se vê é exatamente isso (eu acho). Um único VG que é distribuido
entre dois servidores. usando o DRDB que, segundo eu entendi, vai
apenas espelhar os volumes na outra máquina, mas se for necessário
(falha no disco de uma delas) ele continuará a obter o VBD da outra
maquina que está sobre um LVM.
>>
>> Vejam que o grupo de volume gvXen (que está no San) será visto/usado
>> por ambos os servidores, mas os volumes lógicos só estarão em uso por
>> uma máquina de cada vez. Isso é confiável, ou não funciona?
>
> Como disse, separe por VG's e nao por LV's, se não tu vai ferrar a
> integridade dos metadados do LVM.

Já pensei em fazer algo como o citado em [4], só que substituindo os
discos locais por discos no SAN e replicados com DRDB. Acho que é uma
solução. Isso é o que eu não gostaria de fazer já que vou desperdiçar
espaço no SAN, e como eu disse isso é realmente necessário. O DRDB faz
essa "camada de proteção" para o LVM?
>
>>
>> Eu já dei umas pesquisadas por ai, mas não achei nada muito
>> elucidativo. Vários links referem-se ao clvm, mas não dizem nada a
>> respeito. Olhei a documentação do CentOS[1] - que diga-se de passagem
>> é muito boa - mas não tem nada que me responda a esta dúvida. O manual
>> do LVM diz que ele não suporta cluster, mas  ao mesmo tempo mostra
>> como compartilhar volumes[2].
>>
>> Alguns textos inclusive citam o GFS. A documentação da Redhat e do
>> CentOS principalmente (eles estão vendendo o peixe), mas pro meu caso
>> que cada volume será visto por apenas uma máquina acho que não teria
>> necessidade de colocar a raiz de todos os meus Domus como gfs, ou
>> teria? Se eu quiser compartilhar arquivos entre as Domus eu faço como
>> tenho feito desde o tempo da Internet à vapor (com NFS). Eu achei
>> também uma discussão em [3] mas também não trouxe nenhuma luz nesse
>> túnel.
>
> Eu recomendo o #lvm no irc.freenode.net - o pessoal lá ta sempre pronto pra
> ajudar.

Anotado, vou passar por lá. Português ou Inglês?
>
>>
>> Ao que parece não há informações muito claras sobre este tipo de
>> configuração que (IMO) se tornará cada vez mais comum com o
>> crescimento do mercado de sistemas de virtualização.
>>
>> O sistema das minhas dom0's  é o Debian Lenny com Xen 3.4.0 e das
>> Domus o Lenny e Etch.
>>
>> Aceito sugestões, palpites, links e que mais puder ajudar.
>>
>> Grato.
>>
>> [1] Creating LVM Volume in a cluster -
>>
>> http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/cluster_setup.html
>> [2] Sharing Volumes on LVM -
>> http://tldp.org/HOWTO/LVM-HOWTO/sharinglvm1.html
>> [3] is LVM cluster-aware? -
>> http://www.nabble.com/is-LVM-cluster-aware--td15070306.html

[4] LVM commands and brief reference - http://openskill.info/infobox.php?ID=1456
[5] LVM Failover - http://sources.redhat.com/cluster/wiki/LVMFailover
[6] Xen-ha - http://wiki.xen-br.org/index.php?title=Xen-ha
>> --
>> Welington Rodrigues Braga
>> --------------
>> Web: http://www.welrbraga.eti.br
>> MSN: welrbraga[*]msn·com
>> Gtalk: welrbraga[*]gmail·com
>> Yahoo / Skype:  welrbraga
>> PGP Key: 0x6C7654EB
>> Linux User #253605
>
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> >
>



--
Welington Rodrigues Braga
--------------
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype: welrbraga
PGP Key: 0x6C7654EB
Linux User #253605

Flavio Junior

unread,
Jul 17, 2009, 12:29:45 PM7/17/09
to xen...@googlegroups.com
2009/7/17 Welington R. Braga <welr...@gmail.com>

2009/7/17 Flavio Junior <bil...@gmail.com>:
> 2009/7/17 Welington R. Braga <welr...@gmail.com>
> Não entendi muito bem..

> Tu ta querendo um VG compartilhado entre duas maquinas?
>  Se sim, isso é CLVMD... Eu o uso e funciona muito bem. Porem, o clvmd
> depende de alguma cluster-stack, ai tu vai ter que usar openais/corosync ou
> rhcs, o que vais ter q avaliar o valor beneficio/complexidade.
>

Pelo que eu andei lendo acho que é isso mesmo. Mas não achei nada que
facilite a configuração do clvmd. Você tem algum link para sugerir?

Eu achei dois links [4] e [5], mas cada um diz uma coisa e no fim das
contas não sei se é pra fazer só um ou só o outro, ou ainda os dois.
Um diz que basta alterar o locking do lvm o outro precisa mexer no
arquivo de configuração cluster.conf...

Será que ninguém escreveu sobre este tipo de cenário, ainda!?

Pro LVM trabalhar em cluster, basta alterar o locking_type pra 2 ou 3.
Agora, pro locking distribuido funcionar tu precisa de alguem fornecendo isso, é ai que entra o openais/corosync ou o RHCS (cluster.conf é dele).
 


>  Se não, tu não pode usar o mesmo VG, mas nada te impede de ter 2 VG's na
> SAN e definir um VG como ativo pra cada Dom0, no caso de uma pane na
> Maquina1, tu so precisa levantar os LV dela na Maquina2.
>

Eu vi comentário sobre usar dois VGs, mas como você disse eu não vou
ter como compartilhar os vbds entre os servidores.

É, o LV ser acessado ao mesmo tempo em 2 servidores - não.
O LV ser "visto" pelos 2 servidores, sim. Agora tua estrutura tem que garantir que 2 servidores não vao montar o mesmo LV ao mesmo tempo. No caso do ext3, eu diria que nem somente-leitura pode ser montado, por que mesmo assim o ext3 escreve metadados, já outros filesystem não sei especificar, alguns tu vai ver a opção de "hard read-only" que é uma opção pra nao escrever nada mesmo.

A minha idéia aqui é 3 LV's no VG maquina1, 3 LV's no VG maquina2.
Dom0-1 usa os 3 LV's do VG maquina1 - POR PADRAO
Dom0-2 usa os 3 LV's do VG maquina2 - POR PADRAO

Digamos que cada LV seja uma VM.
A VM2 do Dom0-1 foi pro pau, tu shutdown/destroy essa VM e com isso o maquina1-vg/vm2-lv vai ficar totalmente livre, ai o Dom0-2 sobe a VM2 nele, por que ele enxerga o maquina1-vg.
 


>>
>> Cada volume "vl-VirtualX é um volume lógico com o sistema operacional
>> de uma domU. Todas elas já rodam na "Maquina1-Dom0", mas eu pretendo
>> levantar a "Maquina2-dom0" passar pra ela as Domus que estão em
>> vl_Virtual3 e vl_Virtual4.
>
> Não vai ser tão simples, pq se tu criar um segundo VG, tu não pode mover os
> LV.. tu só pode mover PV's, e assim so se tu tiver bem definido qual LV ta
> em qual PV pra poder fazer isso sem um esquema de dd/rsync.
>

Com o CLVM, não seria possivel compartilhar os volumes lógicos ? O que
me deixa confuso quanto a isso é que se eu pego um tutorial como o [6]
o que se vê é exatamente isso (eu acho). Um único VG que é distribuido
entre dois servidores. usando o DRDB que, segundo eu entendi, vai
apenas espelhar os volumes na outra máquina, mas se for necessário
(falha no disco de uma delas) ele continuará a obter o VBD da outra
maquina que está sobre um LVM.

Sim, com CLVM tu compartilha todo LVM.
Compartilhar o LVM significa os metadados, não os dados.
Da forma como disse antes, tu tambem compartilha os LV's, já que todos servidores na SAN podem ver os mesmos PV's e montarem os mesmos VG's, logo tambem podem ver os LV's.

O que parece que ta confuso ai, é a questão LVM vs. Dados.
Compartilhar o LVM não significa poder monta-los em 2 maquinas ao mesmo tempo, pra isso tu precisa de um filesystem que suporte essa operação, ex: GFS1, GFS2, OCFS2, GlusterFS, Btrfs, LustreFS (sao free) - GPFS (pago).
 

>>
>> Vejam que o grupo de volume gvXen (que está no San) será visto/usado
>> por ambos os servidores, mas os volumes lógicos só estarão em uso por
>> uma máquina de cada vez. Isso é confiável, ou não funciona?
>
> Como disse, separe por VG's e nao por LV's, se não tu vai ferrar a
> integridade dos metadados do LVM.

Já pensei em fazer  algo como o citado em [4], só que substituindo os
discos locais por discos no SAN e replicados com DRDB. Acho que é uma
solução. Isso é o que eu não gostaria de fazer já que vou desperdiçar
espaço no SAN, e como eu disse isso é realmente necessário. O DRDB faz
essa "camada de proteção" para o LVM?

Aqui já embaralhou tudo.
O LVM nem sabe o que é DRBD e vice-versa. São camadas distintas.
Não to lendo os links que tu manda, mas por que usar o DRBD?
DRBD é pra replicação dos dados, pra mim parece que tu quer um "split" dos dados, o inverso.

DRBD = 2 storages - 1 acesso (com filesystem's normais)
DRBD = 2 storages - 2 ou + acessos (com filesystem's cluster-aware)
SAN = 1 shared-storage - 2 ou + acessos (com filesystem's cluster-aware)

 

>
>>
>> Eu já dei umas pesquisadas por ai, mas não achei nada muito
>> elucidativo. Vários links referem-se ao clvm, mas não dizem nada a
>> respeito. Olhei a documentação do CentOS[1] - que diga-se de passagem
>> é muito boa - mas não tem nada que me responda a esta dúvida. O manual
>> do LVM diz que ele não suporta cluster, mas  ao mesmo tempo mostra
>> como compartilhar volumes[2].
>>
>> Alguns textos inclusive citam o GFS. A documentação da Redhat e do
>> CentOS principalmente (eles estão vendendo o peixe), mas pro meu caso
>> que cada volume será visto por apenas uma máquina acho que não teria
>> necessidade de colocar a raiz de todos os meus Domus como gfs, ou
>> teria? Se eu quiser compartilhar arquivos entre as Domus eu faço como
>> tenho feito desde o tempo da Internet à vapor (com NFS). Eu achei
>> também uma discussão em [3] mas também não trouxe nenhuma luz nesse
>> túnel.
>
> Eu recomendo o #lvm no irc.freenode.net - o pessoal lá ta sempre pronto pra
> ajudar.

Anotado, vou passar por lá. Português ou Inglês?

#lvm é em ingles.
Se acessar a rede, pode me encontrar no #slackware-br ou outros canais, meu nick é "waKKu" e se for ver sobre RHCS e/ou corosync já indico os canais #linux-cluster e #linux-ha
 

Welington R. Braga

unread,
Jul 17, 2009, 5:37:41 PM7/17/09
to xen...@googlegroups.com
2009/7/17 Flavio Junior <bil...@gmail.com>:
> 2009/7/17 Welington R. Braga <welr...@gmail.com>
>>
>> 2009/7/17 Flavio Junior <bil...@gmail.com>:
>> > 2009/7/17 Welington R. Braga <welr...@gmail.com>
>>
>> > Não entendi muito bem..
>> > Tu ta querendo um VG compartilhado entre duas maquinas?
>> >  Se sim, isso é CLVMD... Eu o uso e funciona muito bem. Porem, o clvmd
>> > depende de alguma cluster-stack, ai tu vai ter que usar openais/corosync
>> > ou
>> > rhcs, o que vais ter q avaliar o valor beneficio/complexidade.
>> >
>>
>> Pelo que eu andei lendo acho que é isso mesmo. Mas não achei nada que
>> facilite a configuração do clvmd. Você tem algum link para sugerir?
>>
>> Eu achei dois links [4] e [5], mas cada um diz uma coisa e no fim das
>> contas não sei se é pra fazer só um ou só o outro, ou ainda os dois.
>> Um diz que basta alterar o locking do lvm o outro precisa mexer no
>> arquivo de configuração cluster.conf...
>>
>> Será que ninguém escreveu sobre este tipo de cenário, ainda!?
>
> Pro LVM trabalhar em cluster, basta alterar o locking_type pra 2 ou 3.
> Agora, pro locking distribuido funcionar tu precisa de alguem fornecendo
> isso, é ai que entra o openais/corosync ou o RHCS (cluster.conf é dele).
>

Isso eu vi em um dos links que encaminhei. Vi também em um outro que
preciso ser a opção "clustered" do grupo de volume (vgchange
--clustered y NomeDoGrupo - ou algo assim), agora sobre o Openais e
Corosync eu ainda não tinha lido nada. Vou dar uma procurada.

>>
>> >  Se não, tu não pode usar o mesmo VG, mas nada te impede de ter 2 VG's
>> > na
>> > SAN e definir um VG como ativo pra cada Dom0, no caso de uma pane na
>> > Maquina1, tu so precisa levantar os LV dela na Maquina2.
>> >
>>
>> Eu vi comentário sobre usar dois VGs, mas como você disse eu não vou
>> ter como compartilhar os vbds entre os servidores.
>
> É, o LV ser acessado ao mesmo tempo em 2 servidores - não.
> O LV ser "visto" pelos 2 servidores, sim. Agora tua estrutura tem que
> garantir que 2 servidores não vao montar o mesmo LV ao mesmo tempo. No caso
> do ext3, eu diria que nem somente-leitura pode ser montado, por que mesmo
> assim o ext3 escreve metadados, já outros filesystem não sei especificar,
> alguns tu vai ver a opção de "hard read-only" que é uma opção pra nao
> escrever nada mesmo.

Esta garantia de que ambos os servidores não montarão o volume não
pode ser garantida via heartbeat? Se não acho que um scriptzinho
idiota que teste ping, serviços oferecidos por aquele Domu, ou mesmo
leia os dados do storage via snmp ou algo assim consiga garantir, não?

Quanto ao Ext3... eu não uso. Apesar de muita gente criticar o
Reiserfs e elogiar o Ext3 com LVM e Xen, comigo o caminho foi inverso
e nunca perdi dados com Reiserfs, mas com ext3... só de lembrar me dá
tremedeira, mas como disse não haverá momento em que um msmo volume
será montado pelos dois servidores.

>
> A minha idéia aqui é 3 LV's no VG maquina1, 3 LV's no VG maquina2.
> Dom0-1 usa os 3 LV's do VG maquina1 - POR PADRAO
> Dom0-2 usa os 3 LV's do VG maquina2 - POR PADRAO
>
> Digamos que cada LV seja uma VM.
> A VM2 do Dom0-1 foi pro pau, tu shutdown/destroy essa VM e com isso o
> maquina1-vg/vm2-lv vai ficar totalmente livre, ai o Dom0-2 sobe a VM2 nele,
> por que ele enxerga o maquina1-vg.
>

Isso! Essa é a minha intenção. Chegamos ao modelo que queria. Se
considerar este cenário, bastaria setar o locking no lvm e colocar pra
rodar em ambos os servidores? O heartbeat seria só para monitorar as
máquinas e garantir a tolerancia a falhas automática, certo?

>>
>> >>
>> >> Cada volume "vl-VirtualX é um volume lógico com o sistema operacional
>> >> de uma domU. Todas elas já rodam na "Maquina1-Dom0", mas eu pretendo
>> >> levantar a "Maquina2-dom0" passar pra ela as Domus que estão em
>> >> vl_Virtual3 e vl_Virtual4.
>> >
>> > Não vai ser tão simples, pq se tu criar um segundo VG, tu não pode mover
>> > os
>> > LV.. tu só pode mover PV's, e assim so se tu tiver bem definido qual LV
>> > ta
>> > em qual PV pra poder fazer isso sem um esquema de dd/rsync.
>> >
>>
>> Com o CLVM, não seria possivel compartilhar os volumes lógicos ? O que
>> me deixa confuso quanto a isso é que se eu pego um tutorial como o [6]
>> o que se vê é exatamente isso (eu acho). Um único VG que é distribuido
>> entre dois servidores. usando o DRDB que, segundo eu entendi, vai
>> apenas espelhar os volumes na outra máquina, mas se for necessário
>> (falha no disco de uma delas) ele continuará a obter o VBD da outra
>> maquina que está sobre um LVM.
>
> Sim, com CLVM tu compartilha todo LVM.
> Compartilhar o LVM significa os metadados, não os dados.
> Da forma como disse antes, tu tambem compartilha os LV's, já que todos
> servidores na SAN podem ver os mesmos PV's e montarem os mesmos VG's, logo
> tambem podem ver os LV's.

Sendo assim, se eu configurar o CLVM, ativar o tal do locking na
configuração do LVM, definir que o meu VG é "clustered". Eu já posso
usar os volumes lógicos nos dois servidores, da forma como já
definimos lá em cima (uns volumes montados no server1 e outros
noserver2)?

>
> O que parece que ta confuso ai, é a questão LVM vs. Dados.
> Compartilhar o LVM não significa poder monta-los em 2 maquinas ao mesmo
> tempo, pra isso tu precisa de um filesystem que suporte essa operação, ex:
> GFS1, GFS2, OCFS2, GlusterFS, Btrfs, LustreFS (sao free) - GPFS (pago).

Essa não é minha intenção, existem coisas gratuitas e mais simples pra
isso e que atendem as minhas necessidades, como SMB e NFS.

Eu só quero mesmo é estar seguro de que os volumes lógicos possam ser
acessados por ambos os servidores sem problemas à estrutura do LVM, já
que nunca haverá duas máquinas usando o mesmo volume logico. Se por
ventura isso ocorrer o único problema que espero é a corrupção do
filesystem naquele volume lógico e não em todo o meu grupo de volumes.

>
>>
>> >>
>> >> Vejam que o grupo de volume gvXen (que está no San) será visto/usado
>> >> por ambos os servidores, mas os volumes lógicos só estarão em uso por
>> >> uma máquina de cada vez. Isso é confiável, ou não funciona?
>> >
>> > Como disse, separe por VG's e nao por LV's, se não tu vai ferrar a
>> > integridade dos metadados do LVM.
>>
>> Já pensei em fazer  algo como o citado em [4], só que substituindo os
>> discos locais por discos no SAN e replicados com DRDB. Acho que é uma
>> solução. Isso é o que eu não gostaria de fazer já que vou desperdiçar
>> espaço no SAN, e como eu disse isso é realmente necessário. O DRDB faz
>> essa "camada de proteção" para o LVM?
>
> Aqui já embaralhou tudo.
> O LVM nem sabe o que é DRBD e vice-versa. São camadas distintas.
> Não to lendo os links que tu manda, mas por que usar o DRBD?
> DRBD é pra replicação dos dados, pra mim parece que tu quer um "split" dos
> dados, o inverso.

Não, eu nao quero DRDB. O que quis dizer é que setiver que trabalhar
com dois grupos de volumes separados vou ter que usar este cara para
sincronizar os dados em ambos os volumes, como se fossem dispositivos
locais em cada servidor.

>
> DRBD = 2 storages - 1 acesso (com filesystem's normais)
> DRBD = 2 storages - 2 ou + acessos (com filesystem's cluster-aware)
> SAN = 1 shared-storage - 2 ou + acessos (com filesystem's cluster-aware)

Eu quero o ultimo caso, mas ṕorque eu preciso do "filesystem's
cluster-aware" se não vou compartilhar o filesystem? Isso não está
claro? Como você já entendeu lá em cima, eu não quero compartilhar
dados, eu quero compartilhar o grupo de volumes do LVM e definir nos
meus servidores, quais os volumes lógicos eles vão montar.

>
>
>>
>> >
>> >>
>> >> Eu já dei umas pesquisadas por ai, mas não achei nada muito
>> >> elucidativo. Vários links referem-se ao clvm, mas não dizem nada a
>> >> respeito. Olhei a documentação do CentOS[1] - que diga-se de passagem
>> >> é muito boa - mas não tem nada que me responda a esta dúvida. O manual
>> >> do LVM diz que ele não suporta cluster, mas  ao mesmo tempo mostra
>> >> como compartilhar volumes[2].
>> >>
>> >> Alguns textos inclusive citam o GFS. A documentação da Redhat e do
>> >> CentOS principalmente (eles estão vendendo o peixe), mas pro meu caso
>> >> que cada volume será visto por apenas uma máquina acho que não teria
>> >> necessidade de colocar a raiz de todos os meus Domus como gfs, ou
>> >> teria? Se eu quiser compartilhar arquivos entre as Domus eu faço como
>> >> tenho feito desde o tempo da Internet à vapor (com NFS). Eu achei
>> >> também uma discussão em [3] mas também não trouxe nenhuma luz nesse
>> >> túnel.
>> >
>> > Eu recomendo o #lvm no irc.freenode.net - o pessoal lá ta sempre pronto
>> > pra
>> > ajudar.
>>
>> Anotado, vou passar por lá. Português ou Inglês?
>
> #lvm é em ingles.
> Se acessar a rede, pode me encontrar no #slackware-br ou outros canais, meu
> nick é "waKKu" e se for ver sobre RHCS e/ou corosync já indico os canais
> #linux-cluster e #linux-ha

Opa, vou olhar tb. Valeu.

>
>>
>> --
>> Welington Rodrigues Braga
>> --------------
>> Web: http://www.welrbraga.eti.br
>> MSN: welrbraga[*]msn·com
>> Gtalk: welrbraga[*]gmail·com
>> Yahoo / Skype:  welrbraga
>> PGP Key: 0x6C7654EB
>> Linux User #253605
>
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> >
>



--
Welington Rodrigues Braga
--------------
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype: welrbraga
PGP Key: 0x6C7654EB
Linux User #253605

Flavio Junior

unread,
Jul 18, 2009, 12:19:42 AM7/18/09
to xen...@googlegroups.com
2009/7/17 Welington R. Braga <welr...@gmail.com>

2009/7/17 Flavio Junior <bil...@gmail.com>:
> 2009/7/17 Welington R. Braga <welr...@gmail.com>
>

> É, o LV ser acessado ao mesmo tempo em 2 servidores - não.
> O LV ser "visto" pelos 2 servidores, sim. Agora tua estrutura tem que
> garantir que 2 servidores não vao montar o mesmo LV ao mesmo tempo. No caso
> do ext3, eu diria que nem somente-leitura pode ser montado, por que mesmo
> assim o ext3 escreve metadados, já outros filesystem não sei especificar,
> alguns tu vai ver a opção de "hard read-only" que é uma opção pra nao
> escrever nada mesmo.

Esta garantia de que ambos os servidores não montarão o volume não
pode ser garantida via heartbeat? Se não acho que um scriptzinho
idiota que teste ping, serviços oferecidos por aquele Domu, ou mesmo
leia os dados do storage via snmp ou algo assim consiga garantir, não?

Ignorei o resto da mensagem por que só ta confundindo a thread.
Pode, a garantia tu define como puder.. qdo eu disse "tu vai garantir", era exatamente isso, desde um "la garantia soy yo" até um sistema complexo de locking em named pipes. O como aqui nao importa, importa que tu garanta e esteja ciente do que pode (99% de q vai) acontecer se 2 servers mapearem o mesmo LV ao mesmo tempo.
 

Quanto ao Ext3... eu não uso. Apesar de muita gente criticar o
Reiserfs e elogiar o Ext3 com LVM e Xen, comigo o caminho foi inverso
e nunca perdi dados com Reiserfs, mas com ext3... só de lembrar me dá
tremedeira, mas como disse não haverá momento em que um msmo volume
será montado pelos dois servidores.

Heheheh.. vejo muitos casos similares, eu na verdade nunca perdi dados com nenhum dos 2... pra dado critico fico no ext3 pela adocao e numero de ferramentas pra se trabalhar/recuperar dados, se necessário. Nos menos importantes vai de reiserfs ou outros mesmo.
 

>
> A minha idéia aqui é 3 LV's no VG maquina1, 3 LV's no VG maquina2.
> Dom0-1 usa os 3 LV's do VG maquina1 - POR PADRAO
> Dom0-2 usa os 3 LV's do VG maquina2 - POR PADRAO
>
> Digamos que cada LV seja uma VM.
> A VM2 do Dom0-1 foi pro pau, tu shutdown/destroy essa VM e com isso o
> maquina1-vg/vm2-lv vai ficar totalmente livre, ai o Dom0-2 sobe a VM2 nele,
> por que ele enxerga o maquina1-vg.
>

Isso! Essa é a minha intenção. Chegamos ao modelo que queria. Se
considerar este cenário, bastaria setar o locking no lvm e colocar pra
rodar em ambos os servidores? O heartbeat seria só para monitorar as
máquinas e garantir a tolerancia a falhas automática, certo?

Perfeito. Entao tu nao precisa nem mexer no locking_type do LVM e nem de openais (ou corosync, é o mesmo projeto) nem de RHCS/CMAN.
So muda uma coisa do que eu disse antes, eu tinha dito "poe 3 LV em cada VG", mas isso é perigoso por que tu pode acabar (e provavelmente vai acontecer se soh a VM parar, e nao o dom0) montando 1 LV do vg1 no server2 enquanto os outros 2 LV's do vg1 continuam no server1 (e o lock dele ta no server1).

Entao eu faria diferente:
6 LUN na SAN
6 VG's (um pra cada LUN da SAN que virou PV no server)
6 LV's (um por VG, assim tu garante a migracao do lock)

Agora tu pode fazer a "danca das cadeiras" que quiser ai com os VG de server pra server a vontade, so garantir que nao serao montados ao mesmo tempo.

Lembra: os metadados do LVM tao gravados no DISCO (LUN no teu caso) e nao no server. Por isso, quando tu criar os LVM na SAN por um servidor o outro vai enxergar tudo, pq ele vai pegar esses dados do device.

Eu to usando esse eskema de 1 lv por vg nos meus servers, acho que fica muito melhor... principalmente quando for expandir LUN ou criar uma nova LUN pra fazer um vgextend.

Outra coisa que já citei em outra thread aqui da lista sobre isso, *EU* prefiro nao usar tabela de particoes nos devices da SAN pra criar os PV, assim nao tenho que me incomodar com a tabela de particoes quando resolver extender minha LUN no storage.
 

Flavio Junior

unread,
Jul 21, 2009, 1:57:13 PM7/21/09
to xen...@googlegroups.com
Oh..

Rolou na linux-cluster bem parecido com as tuas duvidas, mas abordando CLVM sem um fluster filesystem:

https://www.redhat.com/archives/linux-cluster/2009-July/msg00187.html

PS: Chrissie Claufield é uma das cabeças do desenvolvimento do lvm/clvm/dlm


--

Flávio do Carmo Júnior aka waKKu

2009/7/18 Flavio Junior <bil...@gmail.com>
Reply all
Reply to author
Forward
0 new messages