Passei a utilizar um computador Positivo com usb3.0 que estava me deixando maluco com as mensagem "xHCI xhci_drop_endpoint called with disabled ep" no log... muitas mensagens. Acredito até que eu estava tendo lentidão no acesso a dispositivos usb devido a isto.
Como atualmente não utilizo nenhum dispositivo usb3.0 acabei por tentar desabilitar o uso do módulo xhci com os seguintes arquivos em /etc/modprobe.d
Arquivo xhci com o conteúdo:
options xhci enable=0
e o arquivo xhci_hcd com o conteúdo:
options xhci_hcd enable=0
Provavelmente funcione com somente o segundo arquivo, mas como testei assim e já funcionou, fica a dica.
terça-feira, 30 de dezembro de 2014
quinta-feira, 23 de outubro de 2014
rsync "cannot delete non-empty directory"
Se a execução do rsync está lhe causando arrepios com a mensagem "cannot delete non-empty directory" quando se está utilizando --delete para que o que é excluído na origem seja refletido no destino, pode ser que esteja acontecendo o mesmo que mim.
Inicialmente meu rsync era assim:
rsync -avh --delete
E então alterei para isto:
rsync -avh --exclude=Thumbs.db --delete
Acabou acontecendo de muitos arquivos Thumbs.db continuarem no destino e o --delete não observa que eles foram excluídos na origem, porque eles continuam lá. Então o que temos a fazer é --delete-excluded, para que estes arquivos que estão na origem, mas foram filtrados, e não queremos que eles continuem no destino, porque ficaram lá por uma alteração de política de rsync:
rsync -avh --delete-excluded --exclude=Thumbs.db --delete
Inicialmente meu rsync era assim:
rsync -avh --delete
E então alterei para isto:
rsync -avh --exclude=Thumbs.db --delete
Acabou acontecendo de muitos arquivos Thumbs.db continuarem no destino e o --delete não observa que eles foram excluídos na origem, porque eles continuam lá. Então o que temos a fazer é --delete-excluded, para que estes arquivos que estão na origem, mas foram filtrados, e não queremos que eles continuem no destino, porque ficaram lá por uma alteração de política de rsync:
rsync -avh --delete-excluded --exclude=Thumbs.db --delete
segunda-feira, 30 de junho de 2014
ZFS no Debian Jessie (testing) - parte 3
Tenho armazenado, no meu sistema de arquivos zfs, algumas imagens .vdi de máquinas virtuais do VirtualBox na tentativa de ter um acesso a disco um pouco mais acelerado devido à raidz implantada.
Quem tiver curiosidade sobre o processo de implementação do pool zfs pode verificar em:
Infelizmente notei que após carregar as máquinas virtuais em ficava com a memória praticamente lotada e mesmo depois de desligar as máquinas virtuais a memória continuava lotada sendo que nada era cache. E quando digo lotado é basicamente 6GB de meus 8GB de RAM.
Por acaso resolvi encerrar todos os processos e dar um "modprobe -r zfs". Após isto é que tive meus GBs de memória de volta.
Como não fazia a mínima ideia de como contornar esta situação, após alguma pesquisa cheguei neste post: Excessive memory use with ZFS [SOLVED sort of].
Ainda estou avaliando a solução, mas prontamente já tive uma melhora no cenário, sendo que não cheguei a ficar com mais de 4GB comprometidos. Isto com o meu sistema desktop carregado, com o Iceweasel aberto e muitas abas.
Basicamente a solução consistem em criar o arquivo /etc/modprobe.d/zfs.conf com o conteúdo:
options zfs zfs_arc_max=2147483648
Pelo que entendi este valor seria em bytes e serve como a quantidade máxima de memória utilizada pelo sistema de cache do ZFS o ARC.
Mais informações sobre o tunning do ARC em http://docs.oracle.com/cd/E26502_01/html/E29022/chapterzfs-3.html.
Quem tiver curiosidade sobre o processo de implementação do pool zfs pode verificar em:
Infelizmente notei que após carregar as máquinas virtuais em ficava com a memória praticamente lotada e mesmo depois de desligar as máquinas virtuais a memória continuava lotada sendo que nada era cache. E quando digo lotado é basicamente 6GB de meus 8GB de RAM.
Por acaso resolvi encerrar todos os processos e dar um "modprobe -r zfs". Após isto é que tive meus GBs de memória de volta.
Como não fazia a mínima ideia de como contornar esta situação, após alguma pesquisa cheguei neste post: Excessive memory use with ZFS [SOLVED sort of].
Ainda estou avaliando a solução, mas prontamente já tive uma melhora no cenário, sendo que não cheguei a ficar com mais de 4GB comprometidos. Isto com o meu sistema desktop carregado, com o Iceweasel aberto e muitas abas.
Basicamente a solução consistem em criar o arquivo /etc/modprobe.d/zfs.conf com o conteúdo:
options zfs zfs_arc_max=2147483648
Pelo que entendi este valor seria em bytes e serve como a quantidade máxima de memória utilizada pelo sistema de cache do ZFS o ARC.
Mais informações sobre o tunning do ARC em http://docs.oracle.com/cd/E26502_01/html/E29022/chapterzfs-3.html.
quinta-feira, 12 de junho de 2014
ZFS no Debian Jessie (testing) - parte 2
Continuando o exposto na primeira parte deste tutorial (bom, vou chamá-lo assim agora) em http://meumaravilhosomundolivre.blogspot.com.br/2014/06/zfs-no-debian-jessie-testing.html, partimos para a resolução de alguns inconvenientes encontrados ao compilar e instalar o ZFS a partir do repositório git.
Notei que, depois de criado um sistema de arquivos de tamanho fixo, o dispositivo de bloco correspondente não era criado.
ls -al /dev/zvol/mypool01/data
ls: não é possível acessar /dev/zvol/mypool01/data: Arquivo ou diretório não encontrado
O problema é que nem mesmo /dev/zvol existia, então eis os passos para contornar isto.
cp /usr/lib/udev/rules.d/69-vdev.rules /etc/udev/rules.d
ZFS_UNMOUNT=yes
ZFS_SHARE=no
Foi importante que o script zfs-mount rodasse na inicialização para que não fosse necessário rodar um simples "zpool status" para que o dispositivo de bloco correspondentes ao sistema de arquivos mypool01/data aparecesse logo após o sistema carregado.
Notei que, depois de criado um sistema de arquivos de tamanho fixo, o dispositivo de bloco correspondente não era criado.
- Criar o sistema de arquivos com tamanho fixo e verificar a existência do dispositivo de bloco correspondente:
ls -al /dev/zvol/mypool01/data
ls: não é possível acessar /dev/zvol/mypool01/data: Arquivo ou diretório não encontrado
O problema é que nem mesmo /dev/zvol existia, então eis os passos para contornar isto.
- Copiar os arquivos udev para o local correto:
cp /usr/lib/udev/rules.d/69-vdev.rules /etc/udev/rules.d
- Criar o arquivo /etc/default/zfs com o conteúdo:
ZFS_UNMOUNT=yes
ZFS_SHARE=no
- Confirmar a execução do script /etc/init.d/zfs-mount na inicialização padrão:
Foi importante que o script zfs-mount rodasse na inicialização para que não fosse necessário rodar um simples "zpool status" para que o dispositivo de bloco correspondentes ao sistema de arquivos mypool01/data aparecesse logo após o sistema carregado.
terça-feira, 10 de junho de 2014
ZFS no Debian Jessie (testing) - parte 1
Finalmente depois de tanto querer, e com todo o incentivo do André Machado (Serpro), eis que me aventurei a brincar com o ZFS.
Os problema começaram desde cedo porque não pude seguir o artigo oficial em http://zfsonlinux.org/debian.html, pois a versão empacotada não compila com o kernel 3.14.
Então inicia a caçada a alguma coisa que ajude no processo de por o ZFS em pé. Entre, quem sabe, tantas outras, optei pela compilação com a ajuda do artigo http://www.graymatterboundaries.com/?p=49, configuração com a ajuda do artigo http://bernaerts.dyndns.org/linux/75-debian/279-debian-wheezy-zfs-raidz-pool e o "3.0 Frequent Mistakes" em https://github.com/zfsonlinux/pkg-zfs/wiki/Ubuntu-ZFS-mountall-FAQ-and-troubleshooting.
Na verdade eu vou relatar basicamente este artigo com um detalhe final que logo explico. Eis o passo a passo:
- Instalar o kit para compilação do zfs
- Clonar os repositórios em /root
cd /root/zfsonlinux
git clone https://github.com/zfsonlinux/spl.git
git clone https://github.com/zfsonlinux/zfs.git
./autogen.sh
./configure --prefix=/usr
make
sudo make install
(gerando pacotes Debian)
./autogen.sh
./configure
make deb
dpkg -i *.deb
git clone https://github.com/zfsonlinux/zfs.git
- Compilar e instalar o SPL
./autogen.sh
./configure --prefix=/usr
make
sudo make install
(gerando pacotes Debian)
./autogen.sh
./configure
make deb
dpkg -i *.deb
- Compilar e instalar o ZFS
./autogen.sh
./configure --with-spl=/root/zfsonlinux/spl --prefix=/usr
make
sudo make install
(gerando pacotes Debian)
./autogen.sh
./configure
make deb
dpkg -i *.deb
Em meu cenário simplificado utilizei 3 discos SATA de 2TB para criar uma raidz utilizando a notação /dev/sd{a,b,c}. Para produção a recomendação uma alternativa com nomeação de dispositivo independente da instalação do sistema operacional, como a obtida em /dev/disk/by-id/.
- Criando e configurando um pool raidz
zfs set atime=off mypool01
zfs set dedup=off mypool01
zfs create mypool01/data
zfs set mountpoint=/pool/data mypool01/data
- Criando um sistema de arquivo em mypool01 e definindo o ponto de montagem
zfs create mypool01/data
zfs set mountpoint=/pool/data mypool01/data
Até aqui tudo bem, o problema foi que depois de reiniciar, simplesmente eu não conseguia mais acesso ao pool, simplesmente um "zpool list" não listava os pools. Do que pude entender, o que controla a existência do pool zfs é o arquivo zpool.cache e eu não tinha este arquivo em parte alguma do meu sistema.
- Para criar este arquivo depois de criado o pool rodei:
zpool set cachefile=/etc/zfs/zpool.cache mypool01
Fiz alguns teste, renomeando o arquivo zpool.cache para zpool.cache.old, e realmente o zfs não encontra o pool sem este arquivo.
Uma solução de contorno pra quem criou o pool e reiniciou o sistema sem criar o arquivo zpool.cache é importar o pool e criar o arquivo zpool.cache. O importante é lembrar do nome do pool que foi criado, pois eu não descobri como obter o nome do pool com o zpool list.
- Para importar o pool
Acredito que com isto já seja possível começar a brincar com o ZFS sem muitas dores de cabeça.
Assinar:
Postagens (Atom)