{"id":220,"date":"2011-10-30T15:18:11","date_gmt":"2011-10-30T18:18:11","guid":{"rendered":"http:\/\/blog.abratel.com.br\/?p=220"},"modified":"2011-10-30T15:18:11","modified_gmt":"2011-10-30T18:18:11","slug":"alta-disponibilidade-replicacao-raid-via-rede-clone","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=220","title":{"rendered":"Alta disponibilidade. Replica\u00e7\u00e3o. Raid via rede. Clone"},"content":{"rendered":"<p>GlusterFS \u2013 Um sistema de arquivos para alta disponibilidade<\/p>\n<p>without comments<\/p>\n<p>Depois de um longo tempo sem publicar nada no blog, estou de volta com um assunto interessante: GlusterFS.<\/p>\n<p>Neste artigo irei mostrar como instalar e configurar o GlusterFS para criar um sistema de armazenamento de alta disponibilidade utilizando 2 servidores. Ambos os servidores ser\u00e3o client e server e cada servidor ser\u00e1 espelho do outro onde os arquivos ser\u00e3o replicados automaticamente entre eles, ou seja, uma esp\u00e9cie de raid 1 via rede.<\/p>\n<p>GlusterFS \u00e9 um sistema de arquivos distribu\u00eddo, capaz de escalar v\u00e1rios petabytes. Ele trabalha sob infiniband RDMA ou tcp\/ip. Os desenvolvedores recomendam os sistemas de arquivos Ext3 e Ext4. Outros sistemas de arquivos, como ZFS, ReiserFS, btrfs, JFS, tamb\u00e9m funcionam, mas n\u00e3o foram amplamente testados. XFS tem v\u00e1rios problemas de desempenho devido a sua implementa\u00e7\u00e3o atributos estendidos, se voc\u00ea optar por usar XFS seu desempenho utilizando Gluster ser\u00e1 reduzido em pelo menos 60%.<\/p>\n<p>Para seu funcionamento, voc\u00ea n\u00e3o precisa de nada em especial, pode utilizar seu hardware j\u00e1 existente, como por exemplo servidores com discos Sata\/Sata-II ou ISCSI\/SaS.<\/p>\n<p>Os dados dos servidores a serem utilizados neste artigo s\u00e3o:<br \/>\nview source<br \/>\nprint?<br \/>\n1\tServidor 01: 192.168.0.10<br \/>\n2\tServidor 02: 192.168.0.11<br \/>\n3\tdiret\u00f3rio a ser compartilhado: \/var\/www<\/p>\n<p>\u00c9 interessante voc\u00ea adicionar as seguintes entradas no \/etc\/hosts de cada servidor:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t192.168.0.10      servidor01<br \/>\n2\t192.168.0.11      servidor02<\/p>\n<p>Como em artigos anteriores, este aqui tamb\u00e9m \u00e9 baseado em debian. Os pacotes que iremos utilizar s\u00e3o glusterfs-client e glusterfs-server e a instala\u00e7\u00e3o segue o mesmo procedimento:<br \/>\nview source<br \/>\nprint?<br \/>\n1\tapt-get install glusterfs-client glusterfs-server<\/p>\n<p>Depois de instalar os pacotes, entre no diret\u00f3rio \/etc\/glusterfs, nele voc\u00ea ver\u00e1 os seguintes arquivos:<br \/>\nview source<br \/>\nprint?<br \/>\n1\tglusterfs.vol<br \/>\n2\tglusterfsd.vol<\/p>\n<p>O primeiro arquivo \u00e9 respons\u00e1vel pela configura\u00e7\u00e3o do client e o segundo do server. Como os servidores ser\u00e3o client e server ao mesmo tempo, a configura\u00e7\u00e3o destes arquivos precisa ser id\u00eantica em ambas as m\u00e1quinas.<\/p>\n<p>Renomeie os arquivos e adicione .default ao final de cada um deles:<br \/>\nview source<br \/>\nprint?<br \/>\n1\tcd \/etc\/glusterfs<br \/>\n2\tmv glusterfs.vol glusterfs.vol.default<br \/>\n3\tmv glusterfsd.vol glusterfsd.vol.default<\/p>\n<p>Crie o arquivo \/etc\/glusterfs\/glusterfs.vol com o seguinte conte\u00fado:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t# \/etc\/glusterfs client configuration file<br \/>\n2\t#<br \/>\n3\tvolume client01<br \/>\n4\t  type protocol\/client<br \/>\n5\t  option transport-type tcp\/client<br \/>\n6\t  option remote-host servidor01<br \/>\n7\t  option remote-subvolume brick<br \/>\n8\tend-volume<br \/>\n9<br \/>\n10\tvolume client02<br \/>\n11\t  type protocol\/client<br \/>\n12\t  option transport-type tcp\/client<br \/>\n13\t  option remote-host servidor02<br \/>\n14\t  option remote-subvolume brick<br \/>\n15\tend-volume<br \/>\n16<br \/>\n17\tvolume replicate<br \/>\n18\t  type cluster\/replicate<br \/>\n19\t  subvolumes client01 client02<br \/>\n20\tend-volume<br \/>\n21<br \/>\n22\tvolume writeback<br \/>\n23\t  type performance\/write-behind<br \/>\n24\t  option aggregate-size 1MB<br \/>\n25\t  subvolumes replicate<br \/>\n26\tend-volume<br \/>\n27<br \/>\n28\tvolume cache<br \/>\n29\t  type performance\/io-cache<br \/>\n30\t  option page-size 512MB<br \/>\n31\t  subvolumes writeback<br \/>\n32\tend-volume<\/p>\n<p>Crie o arquivo \/etc\/glusterfs\/glusterfsd.vol com o seguinte conte\u00fado:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t# \/etc\/glusterfs server configuration file<br \/>\n2\t#<br \/>\n3\tvolume posix<br \/>\n4\t  type storage\/posix<br \/>\n5\t  option directory \/var\/www<br \/>\n6\tend-volume<br \/>\n7<br \/>\n8\tvolume locks<br \/>\n9\t  type features\/locks<br \/>\n10\t  subvolumes posix<br \/>\n11\tend-volume<br \/>\n12<br \/>\n13\tvolume brick<br \/>\n14\t  type performance\/io-threads<br \/>\n15\t  option thread-count 8<br \/>\n16\t  subvolumes locks<br \/>\n17\tend-volume<br \/>\n18<br \/>\n19\tvolume server<br \/>\n20\t  type protocol\/server<br \/>\n21\t  option transport-type tcp<br \/>\n22\t  option auth.addr.brick.allow 192.168.0.10,192.168.0.11<br \/>\n23\t  subvolumes brick<br \/>\n24\tend-volume<\/p>\n<p>Para entender melhor as op\u00e7\u00f5es usadas nas configura\u00e7\u00f5es, sugiro dar uma lida na p\u00e1gina de translators.<\/p>\n<p>Com os arquivos configurados, inicie o daemon com o seguinte comando:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t\/etc\/init.d\/glusterfs-server start<\/p>\n<p>Adicione a seguinte entrada no \/etc\/fstab de ambos os servidores:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t\/etc\/glusterfs\/glusterfs.vol    \/var\/lib\/glusterfs      glusterfs    defaults      0   0<\/p>\n<p>Crie o diret\u00f3rio \/var\/glusterfs e monte o diret\u00f3rio:<br \/>\nview source<br \/>\nprint?<br \/>\n1\tmkdir \/var\/glusterfs<br \/>\n2\tmount -a<\/p>\n<p>Agora com tudo pronto em ambos os servidores, vamos realizar os seguintes testes:<br \/>\nview source<br \/>\nprint?<br \/>\n1\t&#8211; No servidor 01: Salve alguns arquivos no \/var\/glusterfs.<br \/>\n2\t&#8211; Conecte no servidor 02 e veja se os arquivos est\u00e3o l\u00e1.<br \/>\n3\t&#8211; Execute um reboot no servidor 01.<br \/>\n4\t&#8211; Veja se tudo est\u00e1 ok no servidor 02.<br \/>\n5\t&#8211; Salve alguns arquivos no servidor 02.<br \/>\n6\t&#8211; Quando o servidor 01 voltar, verifique no \/var\/glusterfs se os arquivos que voc\u00ea salvou quando ele estava fora foram replicados.<br \/>\n7\t&#8211; Repita o procedimento mudando a ordem do servidores.<\/p>\n<p>Voc\u00ea deve estar se perguntando porque estou me baseando no diret\u00f3rio \/var\/glusterfs e n\u00e3o no \/var\/www, isto porque para a replica\u00e7\u00e3o funcionar, os dados precisam ser gravados no \/var\/glusterfs.<\/p>\n<p>E isto \u00e9 tudo. Estando todos os testes ok, voc\u00ea agora tem um raid 1 vai rede :) .<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GlusterFS \u2013 Um sistema de arquivos para alta disponibilidade without comments Depois de um longo tempo sem publicar nada no blog, estou de volta com um assunto interessante: GlusterFS. Neste artigo irei mostrar como instalar e configurar o GlusterFS para criar um sistema de armazenamento&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/220"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=220"}],"version-history":[{"count":0,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/220\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}