Tenho trabalhado para colocar o Membase em funcionamento no OpenSolaris como um projeto paralelo. A maior parte já está pronta, mas ainda há alguns problemas com o Makefile a serem resolvidos. Pensei que, enquanto esperamos para concluir essa tarefa, eu poderia mostrar a você como executar facilmente o moxi como um serviço controlado pelo SMF.
Criei alguns scripts para facilitar a compilação e a instalação de tudo, portanto, a primeira coisa que precisamos fazer é verificar (ou atualizar seu clone) meu repositório de ferramentas:
trond@opensolaris> git clone git://github.com/trondn/tools.git
trond@opensolaris> cd tools/membase
Em seguida, precisamos criar alguns novos conjuntos de dados ZFS para nossa instalação do moxi. Criei um script que cria os conjuntos de dados zfs e configura os pontos de montagem:
trond@opensolaris> ./smf/moxi/setup.sh -u -z rpool
A opção -u instrui o script a criar autorizações, perfis, usuários e grupos de que precisamos, e a opção -z instrui o script a criar os sistemas de arquivos zfs no pool zfs chamado rpool.
Em seguida, precisamos compilar (e instalar) o código-fonte. O diretório /opt/membase não é gravável para nós, portanto, vamos alterar a propriedade para que eu possa instalar os arquivos lá..:
trond@opensolaris> pfexec chown trond:staff /opt/membase
trond@opensolaris> ./setup.sh -d /opt/membase moxi
Baixar o gancho de confirmação - Ok.
Verificando a libmemcached (Bazaar) - Ok.
Verificando o bucket_engine (git) - Ok.
Verificando o ep-engine (git) - Ok.
Verificando o libconflate (git) - Ok.
Verificando o libvbucket (git) - Ok.
Verificando o memcached (git) - Ok.
Verificando o moxi (git) - Ok.
Verificando o vbucketmigrator (git) - Ok.
Verificando o membase-cli (git) - Ok.
Verificação do ns_server (git) - Ok.
Verificando o memcachetest (git) - Ok.
Configurar a compilação para o SunOS
trond@opensolaris> cd moxi/SunOS
trond@opensolaris> make all install
Agora temos tudo instalado em /opt/membase, portanto, vamos alterar a propriedade para membase:membase e instalar o script SMF para gerenciar o moxi:
trond@opensolaris> chown -R membase:membase /opt/membase
trond@opensolaris> cd ../../smf/moxi
trond@opensolaris> ./setup.sh -s
moxi instalado como /lib/svc/method/moxi
moxi.xml instalado como /var/svc/manifest/application/moxi.xml
Então, vamos dar uma olhada nas opções de configuração que temos para o nosso novo serviço SMF:
trond@opensolaris> svccfg
svc:> select moxi
svc:/application/database/moxi> listprop
estrutura de arquivos de manifesto
manifestfiles/var_svc_manifest_application_moxi_xml astring /var/svc/manifest/application/moxi.xml
estrutura geral
general/action_authorization astring solaris.smf.manage.moxi
general/entity_stability astring Instável
general/single_instance boolean true
general/value_authorization astring solaris.smf.value.moxi
dependência de servidor multiusuário
multi-user-server/entities fmri svc:/milestone/multi-user-server
multi-user-server/grouping astring require_all
multi-user-server/restart_on astring none
multi-user-server/type astring service
aplicativo moxi
moxi/corepattern astring /var/opt/membase/cores/core.%f.%p
moxi/downstream_max astring 8
moxi/port astring 11211
moxi/threads astring 4
moxi/url astring http://membase:8091/pools/default/bucketStreaming/default
moxi/versão astring 1.6.0
Modelo tm_common_name
tm_common_name/C ustring Membase
Modelo tm_man_moxi
tm_man_moxi/manpath astring /opt/membase/share/man
tm_man_moxi/section astring 1
tm_man_moxi/title astring moxi
Provavelmente, você desejará definir o parâmetro URL para apontar para o bucket que deseja usar.
svc:/application/database/moxi> setprop moxi/url=http://myserver:8091/pools/default/bucketStreaming/default
Vamos atualizar a configuração e iniciar o serviço:
trond@opensolaris> svccfg refresh moxi
trond@opensolaris> svcadm enable moxi
trond@opensolaris> svcs moxi
TEMPO DE ESTADO FMRI
online 9:45:41 svc:/application/database/moxi:moxi