Posts com a Tag ‘sles’

fsck congela a inicialização do SLES

quarta-feira, 1 de abril de 2009

Há alguns dias reiniciamos um servidor de banco de dados para manutenção de rotina e, ao dar boot, o SLES forçava uma checagem dos discos via fsck que congelava o computador (um Dell PowerEdge 2900, com 2 processadores 64 bits, 8 GB RAM, 10 discos SAS de 300GB cada, com placa controladora Dell Perc6, sendo os discos configurados como RAID 10).

Ainda não descobrimos porque o fsck congelava essa máquina, mas para colocá-la novamente on-line, tivemos que entrar no Rescue System do SLES (com o DVD de instalação), montar o sistema de arquivos e utilizar o comando tune2fs para desabilitar a checagem do fsck durante o boot. Quem descobriu o problema e a solução foi o pessoal da Spirit Linux!

O comando tune2fs -l /dev/sda6, por exemplo, lista diversos parâmetros do filesystem. Preste atenção aos parâmetros:

  • Maximum mount count: define o número máximo de vezes em que o sistema pode ser montado antes de ter uma checagem forçada pelo fsck; e
  • Check interval: define o intervalo de tempo máximo que o sistema poderá ficar antes de ter uma checagem forçada pelo fsck.

No nosso caso, o maximum mount count era de 500, e o check interval de 2 meses. Para desabilitar a checagem forçada do fsck, fizemos:

tune2fs -c 0 /dev/sda6
tune2fs -i 0d /dev/sda6

Esses comandos configuram o sistema de arquivos para ignorar a contagem de quantas vezes o sistema é montado e o intervalo sem uma checagem pelo fsck. Feito isso o sistema foi inicializado normalmente.

Para maiores informações, veja a documentação do tune2fs.

Como desligar a tela de splash na inicialização

domingo, 29 de março de 2009

Quando você instala o SuSE Linux Enterprise Server (SLES) ou o openSUSE, por padrão é instalada uma tela de splash (splash screen) que é exibida durante a inicialização do sistema.

Fica bonitinho, mas existe um problema: se ocorrer algum erro que congele o sistema durante a inicialização, você estará vendo a tela de splash, não conseguirá ver a mensagem de erro e não terá a menor idéia do que está ocorrendo. Na verdade, estou escrevendo essa dica pois exatamente hoje tive um problema em um servidor: ao dar boot o sistema imediatamente congelava e a única coisa que eu via era a tela de splash do SLES… não sabíamos que problema estava causando o congelamento do sistema (a saída foi utilizar o DVD do SLES para dar boot, logar no Rescue System e alterar o Grub para não mostrar a tela de splash).

Portanto, aprendemos da maneira mais difícil possível que é melhor deixar essa tela de splash desligada de uma vez por todas. Para fazer isso edite o arquivo /boot/grub/menu.lst (via shell ou YaST) e faça o seguinte:

  • Para mostrar as mensagens de inicialização, altere opção de splash e mude para splash=verbose
  • Se quiser, além de alterar a opção de splash, retire também a opção vga=0×317 para que o boot seja totalmente em modo texto

Instalação do Subversion 1.6.0 no SuSE Linux Enterprise Server 10

sexta-feira, 27 de março de 2009

Para quem ainda não instalou a nova versão do Subversion, aqui vai um tutorial completo e detalhado da instalação do Subversion 1.6.0 no SuSE Linux Enterprise Server 10 (SLES-10).

Este tutorial é uma atualização do meu tutorial antigo (Subversion 1.5.6 no SLES-10) com algumas modificações específicas para a versão mais nova do Subversion.

Por favor: se você seguiu o tutorial da versão 1.5.6 (ou se já instalou alguma outra versão do Subversion) e agora está seguindo este tutorial para atualizar, tome o cuidado de retirar as bibliotecas antigas do sistema (a Seção 2.4 mostra como fazer isso) para que a compilação não link a nova versão com as bibliotecas da versão antiga.

Acesse o documento em HTML (para leitura on-line) ou PDF (para impressão).

Instalação do PostgreSQL no SuSE Linux Enterprise Server 10

segunda-feira, 23 de março de 2009

A versão do PostgreSQL que é disponibilizada para o SuSE Linux Enterprise Server 10 (SLES-10) é a 8.1. Se você quiser utilizar uma versão mais nova terá que baixar os fontes e instalar manualmente. Esse procedimento também é recomendado se você quiser um controle preciso do locale e do encoding de seu database cluster.

O procedimento que eu uso também inclui atualizar a versão da Tcl do SLES, principalmente porque a Tcl padrão do SLES não é thread-safe, mas se você não precisa dessa linguagem, esse passo pode ser pulado. O processo é o seguinte:

Instale os RPMs oficiais do PostgreSQL para o SLES

Pode parecer estranho fazer isso, já que esse iremos instalar uma versão mais nova manualmente. Mas instalar os RPMs oficiais (postgresql, postgresql-server, postgresql-devel, etc.) adianta uma série de tarefas, como criar o usuário e o grupo postgres, e os scripts de inicialização automática (que mais adiante serão modificados).

Instalação da Tcl:

Faça o download da versão mais nova da Tcl em www.tcl.tk (atualmente é a versão 8.5.6),  configure e instale com os comandos:

./configure --enable-threads --prefix=/usr/local/lib/tcl8.5.6
make
make install

Instalação do PostgreSQL:

Faça o download da versão mais nova do PostgreSQL em www.postgresql.org (atualmente é a versão 8.3.7), configure e instale com os comandos:

./configure --prefix=/usr/local/pgsql --enable-nls --with-perl \
--with-python --with-tcl --with-tclconfig=/usr/local/lib/tcl8.5.6/lib \
--with-openssl --with-ldap --enable-thread-safety

make
make check
make install

Esses comandos irão instalar o PostgreSQL em /usr/local/pgsql. Agora você deve acertar o owner:group, as permissões desse diretório, e criar uma senha para o usuário postgres:

chown postgres:postgres /usr/local/pgsql -R
chmod 750 /usr/local/pgsl
passwd postgres

Ajuste o diretório /usr/local/pgsql como o HOME do usuários postgres, editando seu arquivo /etc/passwd para ficar parecido com:

postgres:x:26:26:PostgreSQL Server:/usr/local/pgsql:/bin/bash

Crie um arquivo “.bashrc” no diretório HOME do usuário postgres para alterar o PATH e a LD_LIBRARY_PATH:

export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib/tcl8.5.6/lib:$LD_LIBRARY_PATH

Criação do database cluster com locale e encoding específicos:

Como usuário postgres, crie dois diretórios em seu HOME e um arquivo (server.log):

mkdir data
chmod 700 data
mkdir log
touch log/server.log

Agora crie o database cluster com locale = C e enconding padrão = UTF-8:

initdb --locale=C --encoding=utf8 -D /usr/local/pgsql/data

Com essas configurações você está dizendo que o encoding padrão é UTF-8 (opção –encoding=utf8), mas que você poderá criar bancos de dados com quaisquer outros encoding suportados pelo PostgreSQL (opção –locale=C). Teste iniciando o PostgreSQL e verificando seu status:

pg_ctl start -s -w -p /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data -l /usr/local/pgsql/log/server.log
pg_ctl status -D /usr/local/pgsql/data

Ajuste de /etc/init.d/postgresql:

A última coisa a ser feita é ajustar o arquivo /etc/init.d/postgresql apontando corretamente as variáveis para os novos diretórios. Um modelo já ajustado pode ser baixado aqui. Para que o PostgreSQL inicie automaticamente durante o boot, use o YaST e ajuste os runlevels.

Ajuste do Vi no linux

terça-feira, 17 de março de 2009

Algumas distribuições linux, em especial a SuSE Linux Enterprise Server (SLES), por padrão deixam o Vi com as seguintes funções desligadas:

  • Syntax highlight; e
  • Backspace key.

Para ativar essas funções, no SLES, edite o arquivo /etc/vimrc e faça duas coisas:

    1. Retire o comentário da linha: syntax on
    2. Acrescente a linha: set backspace=eol,indent,start

      Agora o Vi vai colorir corretamente a sintaxe de seu documento, e a tecla backspace será utilizada.

      Instalação do Subversion 1.5 no SuSE Linux Enterprise Server 10

      terça-feira, 17 de março de 2009

      Quem utiliza o SuSE Linux Enterprise Server 10 (SLES-10) em seus servidores e precisa montar um servidor Subversion, logo descobre que os pacotes RPM oficiais do SLES-10 contém uma versão antiga do Subversion, a versão 1.3.

      Claro que essa versão antiga pode ser utilizada, principalmente se seu projeto de desenvolvimento de software é pequeno e com poucos desenvolvedores.

      Mas se seu projeto é grande e você terá a necessidade de trabalhar com diversos ramos (branches) de desenvolvimento, essa versão antiga será um atraso para você pois ela não conta com o recurso de rastreamento semi-automatizado de ramificações e uniões (semi-automated tracking of branching and merging), que só foi introduzido na versão 1.5 do Subversion.

      Há algum tempo eu precisei de instalar a versão 1.5 do Subversion em um SLES-10 e, como as coisas não foram muito simples, escrevi um passo a passo para mim mesmo.

      Nos últimos dias organizei esse tutorial em um documento que explica, detalhadamente, como instalar e configurar um servidor Subversion 1.5 no SLES-10.

      Acesse o documento em HTML (para leitura on-line) ou PDF (para impressão).

      Comentários são bem-vindos!