Archive for the 'Geek' Category

Coming soon

Já na bancada passando por um batalhão de testes antes de ir pra produção:

root@dc01fs01:~# uname -a
SunOS dc01fs01 5.11 11.0 i86pc i386 i86pc
root@dc01fs01:~# prtdiag
System Configuration: Dell Inc. PowerEdge R710
BIOS Configuration: Dell Inc. 6.0.7 08/18/2011
BMC Configuration: IPMI 2.0 (KCS: Keyboard Controller Style)
==== Processor Sockets ====================================
Version Location Tag
-------------------------------- --------------------------
Intel(R) Xeon(R) CPU X5560 @ 2.80GHz CPU1
root@dc01fs01:~# prtconf |grep -i memo
Memory size: 98292 Megabytes

96GB amigos!

root@dc01fs01:~# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
 0. c3t0d0 <Dell-VIRTUAL DISK-1028 cyl 36442 alt 2 hd 255 sec 126>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@0,0
 1. c3t2d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@2,0
 2. c3t3d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@3,0
 3. c3t4d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@4,0
 4. c3t5d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@5,0
 5. c3t6d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@6,0
 6. c3t7d0 <ATA-OCZ-VERTEX3-2.15-447.13GB>
 /pci@0,0/pci8086,340b@4/pci1028,1f10@0/sd@7,0
Specify disk (enter its number):

SSD alguém? Aqui as specs da OCZ VERTEX3.

root@dc01fs01:~# zpool status pool1
 pool: pool1
 state: ONLINE
 scan: none requested
config:
NAME STATE READ WRITE CKSUM
 pool1 ONLINE 0 0 0
 raidz1-0 ONLINE 0 0 0
 c3t2d0 ONLINE 0 0 0
 c3t3d0 ONLINE 0 0 0
 c3t4d0 ONLINE 0 0 0
 c3t5d0 ONLINE 0 0 0
 c3t6d0 ONLINE 0 0 0
 c3t7d0 ONLINE 0 0 0
errors: No known data errors
root@dc01fs01:~# zpool list pool1
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
pool1 2.61T 1.18G 2.61T 0% 1.00x ONLINE -
root@dc01fs01:~# dladm show-link aggr0
LINK CLASS MTU STATE OVER
aggr0 aggr 9000 up net4 net5 net6 net7

Resumindo: Um storage ZFS só com drives SSD numa máquina com 96GB de RAM conectada na rede com um link agregado de 4GB usando jumbo frames.
Importante citar que switches e servidores ESXi também usando links agregados e jumbo frames. Será que vai ficar boa a performance do meu novo ambiente, não?

To emocionado hoje, viu?  Papai Noel chegou mais cedo.

Stroganoff de Camarão, ficção e realidade

Morar nas maritimes tem suas vantagens e frutos-do-mar por preços acessíveis é uma delas. Taí uma receita que costumo fazer e está na minha lista pra essa semana.

Ingredientes:

  • Meio quilo de camarão limpo e pré-cozido
  • Meio copo de yogurte natural
  • 1 copo de molho de tomate
  • 1 cebola picada
  • Azeite a gosto,
Modo de preparo:
Pré-aqueça uma frigideira no fogo médio, pique bem a cebola e reserve. Coloque o camarão num recipiente à parte e deixe o molho e o yogurte bem próximos um do outro. Espere entre 10 e 15 bilhões de anos (tempo aproximado), Coma enquanto ainda quente. Serve 4 pessoas.
Opa. Foi mal. O meu modo de preparo simplesmente cuspiu na cara de Isaac Newton ao desprezar sua primeira lei, né? Quer dizer… o camarão tende a ficar paradinho no seu recipiente exceto se uma força externa for aplicada a ele.
Isso sem contar com a sempre estraga-prazeres segunda lei da termodinâmica, que diz que a quantidade de entropia num sistema fechado (aka minha cozinha) tende a aumentar conforme passa o tempo. Ou seja: Obrigatoriamente meu camarão vai estragar, minha cebola vai azedar e a frigideira vai esfriar antes desse stroganoff ficar pronto.
Você que já me acompanha a mais tempo sabe onde vou chegar com essa conversa, mas continue lendo mesmo assim.
Um stroganoff é uma receita simples, que precisa de poucos ingredientes e pouco preparo mas não precisa ser cientista para ter o bom-senso de saber que meu modo de preparo é furado. Pense comigo: Tenho todos os ingredientes já na quantidade ideal, fisicamente próximos uns dos outros e num ambiente ideal (a cozinha). Mesmo assim essa receita jamais irá preparar-se a si mesma.
Se ajudasse eu poderia fornecer um macaco. A responsabilidade dele seria agir como um agente externo de possibilidades. Segundo o que é defendido por inúmeros cientistas, dado um número suficiente de possibilidades e universos (multiversos) em alguma realidade paralela em alguns bilhões de anos eventualmente o nosso macaco iria misturar os ingredientes na quantidade, ordem e recipientes corretos e acabar fazendo o stroganoff. Ridículo? Eu também acho.
Agora note, por favor, que minha receita está para o DNA assim como uma cabana feita com um cobertor e duas cadeiras está para o Burj Khalifa. E mesmo assim cientistas como Richard Dawkins sustentam que é matematicamente possível que a receita da vida tenha surgido apenas pelo fato de ingredientes ideais estarem no mesmo lugar ao mesmo tempo numa incrível coincidência cósmica.
Sei lá, mas eu já li e pesquisei um bocado sobre como seria o ambiente no planeta quando tais circunstâncias ideais apareceram e vou dizer que minha cozinha limpinha e orgazinada é um ambiente muito mais propício para que ingredientes se auto-coordenem do que num lugar caótico, tempestuoso e vulcânico como teria sido o início do planeta. Só pensando…
Não só as chances da vida ter surgido de não-vida são ridiculamente pequenas (você pode acabar com todo o endereçamento IPv6 e exaurir um filesystem ZFS antes de começar a chegar perto do número de zeros necessários), mas ainda por cima isso teria que ter acontecido muitas e muitas vezes até que uma das novas moléculas “sobrevivesse” nesse ambiente inóspito o suficiente para criar outra e outra e outra de si mesma.
Agora, não me entendam errado. Eu sou um grande fã de ficção. E sou um grande fã de quadrinhos também e acho que ninguém trabalha melhor e especula melhor a possibilidade de multiversos e realidades paralelas do que os quadrinhos.
Nesse exato momento a DC está reformulando todos os seus personagens e até onde li basicamente o anti-flash está alterando a realidade do nosso universo conhecido e trazendo para cá o que seria uma realidade paralela em outro universo.
Outro exemplo muito bom foi a saga Marvel vs DC onde os “universos” percebem a existência um do outro e decidem que só um pode existir, causando um guerra entre os heróis das duas editoras. (E eu ainda acho que o Lobo deveria ter ganhado do Wolverine).
Eu posso ler e me envolver por horas a fio com histórias de universos paralelos, realidades alternativas, possibilidades infinitas, viagem no tempo e etc. Mas no final do dia eu sei que isso tudo é ficção e não realidade.
Quando olho um software eu não assumo que deixaram o servidor de GIT ligado por milhões de ano e o código apareceu. Eu imediatamente assumo que existe um programador.
Quando vejo uma escultura nem por um instante eu penso: “Que bela obra do acaso”. Eu posso não saber nada a respeito daquela escultura, mas uma coisa eu e qualquer outra pessoa do mundo tem certeza absoluta: Existe um escultor.
E da mesma forma que uma pintura exige um pintor, uma mesa pre-supõe um carpinteiro e um sistema operacional foi codificado por um hacker toda e qualquer criação precisa de um criador.
Apenas o senso comum é suficiente para nos dizer que se uma coisa ridiculamente simples como um stroganoff de camarão não pode surgir sem um cozinheiro quiçá então mais a vida, o universo e tudo mais que existe.
Não, 42 não é a resposta. Isso, de novo, é só ficção.

IOPs

Descobri hoje o fio e resolvi fazer alguns testes.

Vai aqui um breve comparativo just-for-fun de um random-read:

Latitude E6400 (meu laptop)

  • kernel 2.6.35 (Mint Julia)
  • Filesystem EXT4
  • Disco:
           description: ATA Disk
           product: ST9250421ASG
           vendor: Seagate

read : io=131072KB, bw=589452B/s, iops=143, runt=227699msec

Dell Power Edge T110

  • Kernel 2.6.38 (Ubuntu Natty)
  • Filesystem Reiserfs
  • Disco:
       description: ATA Disk
       product: WDC WD2502ABYS-1
       vendor: Western Digital

read : io=131072KB, bw=700945B/s, iops=171, runt=191481msec

  • RaidZ (fuse ZFS) composto dos seguintes discos:
  *-disk:1
       description: ATA Disk
       product: ST31000524AS
       vendor: Seagate
  *-disk:2
       description: ATA Disk
       product: Hitachi HDS72101
       vendor: Hitachi
  *-disk:3
       description: ATA Disk
       product: ST31000528AS
       vendor: Seagate

read : io=262144KB, bw=1066KB/s, iops=266, runt=246014msec

Dell Power Edge 2850

  • Kernel 2.6.18-164 (CentOS 5.4)
  • Filesystem EXT3/LVM
  • Disco:
  *-disk ->> Isso é um RAID5 composto de 4 discos SAS 15K
       description: SCSI Disk
       product: LD 0 RAID5  559G
       vendor: MegaRAID

read : io=262144KB, bw=1950.6KB/s, iops=487 , runt=134429msec

 

UPDATE:

Configuração usada pros testes:

[random-read]
rw=randread
size=256m
directory=/partição/fio/data

 

Google Apps Enterprise

Tem pesadelo maior pra um sysadmin Unix do que ter que dar manutenção em servidor Windows? Sim! Dar manutenção em um servidor Exchange, obviamente rodando num servidor Windows. E ainda por cima ser um servidor só, 2003, e começar a ter requerimentos de múltiplos domínios. E aliases externos e tudo mais aquilo que é mamão-com-açúcar usando um Postfix.

Mas não basta remover o Exchange. Minha impressão é que se o e-mail é a ferramenta número um usada na empresa o calendário é a número dois. Ah, sim… BlackBerry. Tem que sincronizar com essa criatura. E iPhone. E Android. Sim: O email e o calendário. E nem ouse perder os contatos. Devem sincronizar e estar sempre disponíveis.

Ai ferrou, né? Basicamente consegui pensar só em um servidor alternativo ao Exchange: Zimbra. É sensacional e já usei antes. Mas cá entre nós: Eu já tenho tanto trampo e minha equipe foi reduzida recentemente com um dos técnicos pulando pro time de vendas. Que tal passar o problema pra outro?

Pesquisei um pouco e por coincidência fui contactado por um empresa parceira do Google quase ao mesmo tempo e partimos pro Google Enterprise com direito a Postini e tudo.

Não foi nem de longe a migração simples e suave que eu planejava e o fato de ter múltiplos domínios sendo migrados em datas diferentes fez a coisa ficar ainda mais complicada. Mas o que mais me impressionou mesmo é a resistência a mudança que as pessoas tem.

Mesmo com todas as maravilhosas features disponíveis na interface web do Gmail cerca de 90% da minha base de usuários pediu pra que o Outlook fosse configurado. Literalmente meia dúzia de pessoas abraçou a interface web. O que, na minha opinião, é ridículo.

No lado da migração já fica a dica pra quem for pelo mesmo caminho: Esquece a opção de deixar os usuários migrarem seus próprios emails: A ferramenta é um lixo, trava o diversas vezes e é incrivelmente lenta. Vá direto pra opção de migrar direto do Exchange pro Gmail e seja feliz. Esse foi meu principal erro… Quis deixar meus usuários migrarem seus emails (menos problema pra mim, né?) e foi um tiro no pé. Tive um dia do cão ouvindo xingos variados, a internet ficou uma carroça (todos os usuários tentando subir suas várias centenas de MBs de emails ao mesmo tempo) e logo de cara causou uma imensa má impressão do produto que deve durar ainda por um bom tempo.
No final acabei tendo que migrar (ou re-migrar, se isso existe) quase todo mundo usando o Exchange.

E minhas aventuras de migração estão longe de terminar. Se você anda se perguntando porquê não apareço mais no Google Talk nem no Twitter e nem aqui no blog fica aqui minha lista de projetos em andamento:

  • Migrar minha server farm (produção) para um Data Center (atualmente temos nosso próprio mini-DC) até o final de Junho
  • Coordenar a mudança (aka montar a infra-estrutura) para a nova sede da empresa até o final de Julho
  • Adquirir novo sistema de PABX para a nova localidade (acima) até o começo de Junho

E nem estou contando coisas “pequenas” tipo migrar um cliente de grande porte de self-hosted para SaaS nesse final de semana.

Vou apenas dizer que ando bem cansado…

Ambiente de trabalho em 7 items

Respondendo à convocação do Diogo, vai aqui minha contribuição:

0. Dois Monitores.

A única coisa que odeio ao trabalhar em casa é ter só um monitor. Mesmo o monitor de 27” polegadas do iMac da esposa não dá o mesmo efeito ou produtividade de dois monitores. Essencial pro dia-a-dia.

1. Google

Sejamos honestos: Quem seríamos nós sem o Google? Man pages são úteis, livros são bons, um conhecido que você possa perguntar é ótimo, mas se eu não tiver o Google na hora de trabalhar eu só valho metade. Fiz outsource do meu cérebro faz tempo.

2. Bash

Além de ter feito outsource do cérebro do Google a preguiça ainda me obriga a usar o bash para quase tudo. Tenho trocentos atalhos, aliases e scripts em bash para facilitar meu dia-a-dia. No passado quando precisei utilizar workstations com Windows no trabalho não teve jeito: Instalei Cygwin

3. Chrome

A performance do Chrome e limpeza do Chrome me basta. Uma janela dele com trocentas e sou um cara produtivo

4. VI (Na verdade VIM). Editor de texto de Geek. Serve pra programar, copiar/colar, editar, ajeitar, comparar, etc, etc. Não aceite nada inferior, ahãn, emacs, ahãn.

5. Konsole, screen, Yakuake.

Múltiplas sessões, múltiplos servidores, múltiplas tarefas? Várias abas, sessões e sempre um útil console quake-style.

6. Café

Preto, quente, sem açúcar.

Quais as chances disso acontecer?

Eu pensei: Pô… meia noite eu dou uma olhada pra ver se o novo job que eu coloquei na cron vai funcionar. Que horas serão?

[root@bdlfs03 .snapshots]# date
Thu Jan 20 00:00:00 AST 2011

BULLSEYE!

Forçando seu caminho no WordPress

Me deparei com um desafio interessante hoje quando um amigo precisou de ajuda com o WordPress dele.

Além de não lembrar a senha para dar login no site ainda por cima o usuário ainda não era administrador, visto que foi uma outra pessoa que instalou/configurou para ele. E como precisava fazer upgrade urgente por vários motivos eu fui lá tentar arrumar.

Acabou que foi tão complicado. Basicamente dois passos: Primeiro resetar a senha do usuário e segundo elevar o privilégio dele.

A primeira parte é fácil e está bem documentada aqui. Se tiver o phpmyadmin instalado, ai é mais boiada ainda.

Elevar o privilégio é um pouco mais complicado, mas nada de rocket science.

Faça o seguinte: conecte no banco dados e descubra o ID do usuário (digamos que o user_login seja Fulano):

SELECT ID, user_login  FROM  wp_users where user_login = "Fulano";

Depois pegue o ID e faça a mudança de privilégios (digamos que o ID seja 999):

update wp_usermeta set meta_value='a:1:{s:13:"administrator";b:1;}' where user_id=999;

Voilá! Agora foi só dar login com privilégio de administrador e rodar o auto-update.

ZFS: Eu desisto

Pra esse ano novo eu resolvi fazer um update no meu home office, que vocês devem lembrar do último post que está num estado deplorável.

O ditado de que em casa de ferreiro o espeto é de pau é verdade. Aqui em casa a rede não passa nem perto do relógio suiço que é na empresa. Só tenho uma pasta compartilhada na rede, vira e mexe a esposa tem problemas de permissão copiando arquivos, a impressora não é compartilhada, os backups são manuais (quando eu lembro) e não tinha nada organizado em termos de storage.

Resolvi começar atacando o problema de storage e minha idéia inicial foi usar ZFS.

Peguei emprestado um HD externo na empresa (ah, sim… meu HD de backup não tem espaço para um backup full das minhas coisas), fiz aquele backup com capricho e mandei ver…

Comecei pensando em instalar o Debian/kFreeBSD, mas pensei: Pô… Se eu vou instalar FreeBSD vamos logo pras cabeças, né? Baixei FreeBSD 8.1 e comecei a instalar, mas logo de cara já deu aquela sensação ruim. A última vez que usei FreeBSD foi circa 2001 e logo de cara vi que o processo de instalação continua igualzinho! O bagulho não evoluiu uma vírgula em 10 anos. Começou mal.

Depois de instalado passei um bom tempo tentando configurar o X, sem sucesso. Verdade que tenho uma maldita nVidia, mas deveria funcionar com um driver genérico. Mas não rolou. Tudo bem, não preciso de X, vamos instalar outras coisas. Vou até o ports e instalo meia dúzia de coisas, mas outras que vou tentar só dão erro. Quer saber? Não sou masoquista não.

Vamos pro Debian/BSD então. Pra instalar com suporte a ZFS na partição root só usando o daily build do mini.iso. Beleza. Tem um mirror numa universidade aqui perto e o download é rápido pra cacete. Não vai ser o problema.

A instalação é linda, vai tudo bem até o final, dou boot no sistema, ZFS online, apt-get install comendo solto e coloco X pra funcionar num instante (ruim, mas funcionando). Ai o primeiro problema: Conecto meu HD externo e o meninão não reconhece EXT3… Só EXT2. :-\

Conecto o HD no meu notebook e começo um rsync via rede. Mesmo demorando uma eternidade as coisas vão indo bem e eu já penso: Bom… enquanto restaura vou brincar com as configurações. Essa pasta aqui eu vou compartilhar na rede e…

warning: mountd isn't supported in Debian GNU/kFreeBSD yet

WTF? Como assim? Não posso compartilhar meus volumes ZFS? E só descubro isso umas 2 horas depois de tudo instalado e com metade dos backups restaurados?

Quer saber, vocês vão tudo praquele lugar. Eu vou instalar OpenIndiana mesmo. Mais 30 minutos de download, gravar DVD, boot… boot? Nem boot deu no meu PC. TAQUEO!

Nesse momento eu desisti. Chega. Sofrimento tem limites. Bora baixar Ubuntu 10.10 e usar Btrfs mesmo…

Eu não canso de brincar com ZFS

Que coisa mais divertida:

root@squeeze:~# zfs snapshot squeeze-da0s1@daily.1
root@squeeze:/# rm -rf usr var etc
root@squeeze:/# zfs rollback squeeze-da0s1@daily.1
zfs: error while loading shared libraries: libexpat.so.1: cannot open shared object file: No such file or directory
root@squeeze:/# cd .zfs
root@squeeze:/.zfs# cd snapshot/
root@squeeze:/.zfs/snapshot# cd daily.1/
root@squeeze:/.zfs/snapshot/daily.1# cp -r usr var etc /
cp: cannot create special file `/var/run/log': Invalid argument
root@squeeze:/.zfs/snapshot/daily.1# zfs rollback squeeze-da0s1@daily.1
root@squeeze:/.zfs/snapshot/daily.1# cd /
root@squeeze:/# ls -lha
total 39K
drwxr-xr-x 20 root root  21 Dec 28 15:19 .
drwxr-xr-x 20 root root  21 Dec 28 15:19 ..
drwxr-xr-x  2 root root  91 Dec 28 10:32 bin
drwxr-xr-x  4 root root   6 Dec 28 10:33 boot
drwxr-xr-x  3 root root   3 Dec 28 17:03 data
dr-xr-xr-x  5 root root 512 Dec 28 16:57 dev
drwxr-xr-x 59 root root 139 Dec 28 16:58 etc
drwxr-xr-x  3 root root   3 Dec 28 10:49 home
drwxr-xr-x  9 root root 108 Dec 28 10:32 lib
lrwxr-xr-x  1 root root   4 Dec 28 10:25 lib64 -> /lib
drwsrwsrwt  3 root root   4 Dec 28 10:22 media
drwxr-xr-x  2 root root   2 Nov 14 07:08 mnt
drwxr-xr-x  2 root root   2 Dec 28 10:25 opt
dr-xr-xr-x  1 root root   0 Dec 28 17:12 proc
drwx------  3 root root   6 Dec 28 15:20 root
drwxr-xr-x  2 root root 114 Dec 28 10:49 sbin
drwxr-xr-x  2 root root   2 Dec 28 10:25 srv
dr-xr-xr-x  1 root root   0 Dec 28 17:12 sys
drwxrwxrwt  2 root root   2 Dec 28 16:58 tmp
drwxr-xr-x 10 root root  11 Dec 28 10:25 usr
drwxr-xr-x 13 root root  13 Dec 28 10:25 var

iPad

E ai apareceu um potencial cliente na empresa com um requerimento essencial: funcionar no iPad… Então tá, né? Preciso de um pra trabalhar.

Próxima coisa que sei é que hoje entegaram um iPad 3G 64GB na minha sala. :O

Nāo sei quanto tempo vai ficar na minha māo, já que mais cedo ou mais tarde vai ter que ir pro pessoal de vendas fazer demonstração e tal, mas por enquanto ele é meu.. Todo meu… Meu precioso…

Exceto pelos acentos o teclado é bom e fácil de usar e estou conseguindo digitar razoavelmente rápido, mas já algumas vezes perdi o backspace e acabei clicando em algo que não deveria. Aliás acabei de descobrir que entre os acentos disponíveis não tem o O com o til.

O browser é bacana e abriu tudo que eu normalmente acesso, mas acho que ainda prefiro o do Android. Parece ser mais rapido, mesmo comparando meu Milestone com o iPad.

O tamanho da tela é sensacional e parece ser bem o que eu tinha pensando mesmo. Ainda quero fuçar num tablet de 7”, mas to achando que 9” é o que liga mesmo.

A parte chata é precisar de um Mac ou Windows pra conectar o bichinho, mas como aqui em casa temos um Mac, sem maiores dificuldades.

Uma coisa que curti foi acesso VPN. Foi moleza configurar minha conexão IPSec e acessar a empresa. E já instalei um cliente SSH baratinho pra poder ter acesso ao console dos servidores.

E por falar em baratinho, essa história de apps de graça ou por $0.99 deve ser lenda, já que tudo que precisei até o momento custou entre 2 e 4 mangos.

Mas resumindo a história, acho que pelo menos até quinta o brinquedo é meu. Vamos ver se consigo chegar a uma conclusão até lá se compro ou não compro o meu próprio.