Pesquisar neste blog

quarta-feira, 14 de abril de 2010

Criando volumes VMFS e virtual disk files usando comandos fdisk e vmkfstools

Na ausência da possibilidade do cliente VI para mudar a instalação de partições vmhba VMFS sem modificar todo o disco de instalação e, portanto, corromper a instalação, você pode criar manualmente volumes VMFS e virtual disk files usando os comandos fdisk e vmkfstools.

O vmkfstools lhe permite operar em uma partição. Desta forma, você pode modificar os atributos de uma instalação do ESX em um único disco para aumentar o tamanho do bloco de sua partição VMFS.


Para criar um volume VMFS, você deve antes de tudo usar o fdisk para criar uma partição com a tag do tipo "0xfb"

Nota: Por padrão, o ESX Server criará partições VMFS que estão desalinhadas. Por esse motivo é preferível usar o cliente VI para criar partições VMFS. No entanto, quando isso é necessário ser feito manualmente, execute os seguintes procedimentos para alinhar o VMFS:

vmkfstools pode ser usado para construir o volume VMFS.


Usando o fdisk via Console para Alinhar manualmente filesystem VMFS:

A partir da console, execute "fdisk , onde o argumento do fdisk é a partição onde você quer criar a partição VMFS.


1 - Tecle "n" para criar uma nova partição
2 - Tecle "p" para criar uma partição primária
3 - Tecle "3" para criar a partição #3
4 - Selecione defaults para usar disco completo.

Agora, nós precisamos alinhar em um limite de 64KB:

5 - Tecle "x" para entrar no modo expert
6 - Tecle "b" para especificar o bloco de partições
7 - Tecle "3" para selecionar a partição #3
8 - Tecle "128" para fazer a partição #3 alinhada em um limite de  64KB.
9 - Tecle "r" para retornar ao menu principal.

Agora, nós precisamos mudar o tipo de partição "fb" para VMFS.

10 - Tecle "t" para mudar a partição
11 - Tecle "3" para selecionar a partição 3
12 - Tecle "fb" para setar o tipo para fb (volume VMFS)
13 - Tecle "w" para gravar


Nota: Se você já tiver criado através de uma instalação ou viclient, você não precisa usar o fdisk em uma partição. Você pode simplesmente substituir o vmfs com o comando abaixo. Assim, no caso de modificação do tamanho de bloco você não vai precisar executar os procedimentos acima em uma partição vmfs existente.


Agora você pode criar um volume VMFS com o comando "vmkfstools -C".

Nota: A letra minúscula 'c' cria um vmdk, não um VMFS filesystem.


# vmkfstools --createfs vmfs3 --blocksize 2m vmhba1:0:0:3
# vmkfstools -C vmfs3 -b 2m vmhba1:3:0:1



Atenção: Tenha muito cuidado aqui. O argumento deve ser a partição,  se você estiver operando em uma partição e não um dispositivo inteiro. Os comandos acima não irão avisá-lo de que há uma partição VMFS antes de criar uma nova.

Se você estiver com dúvidas, use o comando "esxcfg-vmhbadevs -m" para ver o sistema de arquivos existentes é um VMFS. Se não existir, então você deve ser claro sobre o nome da partição. Use "fdisk-l" para ver a partição (fb tipo). O dispositivo vmhba correspondente seria listado como:
/vmfs/devices/disks/vmhbaA:T:L:P.


Algumas dicas mais sobre o  vmkfstools:

Para construir um novo VMFS:

# vmkfstools -C vmfs2 vmhba0:8:0:1

Para definir um label

# vmkfstools -S sanV3 vmhba0:8:0:1

Para criar um novo disco virtual:

# vmkfstools -c 4096 sanV3:websvr.vmdk

Para exportar:

# vmkfstools -e /vmimages/ws.vmdk sanV3:ws.vmdk

Para expandir um disco virtual

# vmkfstools -X 8192M sanV3:windata.vmdk

Para importar:

# vmkfstools -i /vmimages/disk2.vmdk sanV3:other.vmdk 

terça-feira, 6 de abril de 2010

Aumentando o espaço em disco de partições linux com o comando Tune2fs

Nem todas as distribuições Linux permitem aos usuários ajustar os parâmetros do sistema de arquivos durante a instalação do Linux, como file system Reserved Block Count. O Instalador do Debian permite ao usuário mudar a quantidade de blocos reservados pelo sistema de arquivos em fase de instalação.

Outras distribuições Linux, como Red Hat Linux em particular, só permitem  ao usuário ajustar os parâmetros do sistema de arquivos na fase de pós-instalação, via utilitário do sistema tune2fs.


A Reserva do Numero de Blocos pelo sistema de arquivos reduz a desfragmentação do mesmo, permitir o login do usuário root para manutenção no sistema ou permitir ao sistema usar as propriedades de logging facility caso o sistema de arquivos esteja trabalhando com pouco espaço em disco.


Como reduzir a contagem de blocos reservados em partições ext2 /ext3 ?


O comando df mostra o espaço disponível na coluna Avail:
 
# df -h
 Filesystem            Size  Used Avail Use% Mounted on
/dev/sdd1             917G  858G   13G  99% /mnt/disc1TB


O padrão reservado em partições pelo sistema operacional é de 5%. Veja acima que temos apenas 99% de espaço livre na partição, ou 13GB.



Agora vamos alterar para que use apenas 1% e vamos ver como ficou:


# tune2fs -m 1 /dev/sdd1

tune2fs 1.39 (29-May-2006)
Setting reserved blocks percentage to 1% (2441900 blocks)



# df -h

 Filesystem            Size  Used Avail Use% Mounted on
/dev/sdd1             917G  858G   50G  95% /mnt/disc1TB


Bom, agora notamos que após executarmos o utilitário tune2fs aumentamos o espaço livre na partição que antes era de 99% e passou para 95%.



Podemos desabilitar totalmente o ( Reserve Block Count ) se o sistema de arquivos não for utilizado pela conta do usuário root ou armazenamento de logs/programas e arquivos temporários do sistema. (Ex: /var e /tmp). Por exemplo, sistemas de arquivos dedicados para Compartilhamentos Samba, videos ou arquivos de música, etc...



terça-feira, 30 de março de 2010

Criando um siga-me no asterisk 1.6.2 usando a função SayDigits

O primeiro passo é a criação dos contextos ativa e desativa o siga-me. O incremento do recurso siga-me com a função SayDigits pode ser importante, no caso de termos certeza do ramal para o qual estamos ativando o redirecionamento da chamada.


; Ativa Siga-me incondicional

[sigame-on]
exten => _*71*.,1,NoCDR()
exten => _*71*.,2,Set(DB(CF/${CALLERID(num)})=${EXTEN:4})
exten => _*71*.,3,Playback(call-fwd-unconditional&for&extension)
exten => _*71*.,4,SayDigits(${CALLERID(num)})
exten => _*71*.,5,Playback(is-set-to)
exten => _*71*.,6,SayDigits(${EXTEN:4})
exten => _*71*.,7,Playback(vm-saved)
exten => _*71*.,8,Playback(beep)
exten => _*71*.,9,Hangup

; Desativa o siga-me incondicional

[sigame-off]
exten => _*72*,1,NoCDR()
exten => _*72*,2,DBdel(CF/${CALLERID(num)})
exten => _*72*,3,Playback(cancelled)
exten => _*72*,4,Playback(beep)
exten => _*72*,5,Hangup




Bom, agora vamos ao pulo do gato, esse passo é muito importante pois é ele quem verifica se existe ou não o siga-me para o ramal.

Vamos ao contexto:

[disca]
exten => _3XXX,1,Noop(CF/${EXTEN})
exten => _3XXX,2,Set(siga=${DB(CF/${EXTEN})})
exten => _3XXX,3,Dial(SIP/${siga},30,Ttw)
exten => _3XXX,4,Dial(SIP/${EXTEN}) ; Unconditional forward
exten => _3XXX,5,Hangup

Neste caso, todas as ligações que forem feitas para qualquer o número 3XXX, ele vai verificar na base de dados do asterisk se existe algum registro CF referente ao ramal de destino e se existe um valor para esse registro, caso haja, ele efetua o siga-me, caso não faz a ligação normal.


Para resumir, se você tem um arquivo de configuração extensions.conf zerado, apenas com o contexto default criado, faça as seguintes alterações conforme abaixo:


[default]
include = > sigame-on
include = > sigame-off
include = > disca

Criando um siga-me incondicional no asterisk 1.6.2

O primeiro passo é a criação dos contextos ativa e desativa o siga-me


; Ativa Siga-me incondicional
[sigame-on]
exten => _*71*.,1,NoCDR()
exten => _*71*.,2,Set(DB(CF/${CALLERID(num)})=${EXTEN:4})
exten => _*71*.,3,Playback(beep)
exten => _*71*.,4,Playback(vm-saved)
exten => _*71*.,5,Hangup

; Desativa o siga-me incondicional
[sigame-off]
exten => _*72*,1,NoCDR()
exten => _*72*,2,DBdel(CF/${CALLERID(num)})
exten => _*72*,3,Playback(beep)
exten => _*72*,4,Playback(vm-saved)
exten => _*72*,5,Hangup




Bom, agora vamos ao pulo do gato, esse passo é muito importante pois é ele quem verifica se existe ou não o siga-me para o ramal.

Vamos ao contexto:

[disca]
exten => _3XXX,1,Noop(CF/${EXTEN})
exten => _3XXX,2,Set(siga=${DB(CF/${EXTEN})})
exten => _3XXX,3,Dial(SIP/${siga},30,Ttw)
exten => _3XXX,4,Dial(SIP/${EXTEN}) ; Unconditional forward
exten => _3XXX,5,Hangup

Neste caso, todas as ligações que forem feitas para qualquer o número 3XXX, ele vai verificar na base de dados do asterisk se existe algum registro CF referente ao ramal de destino e se existe um valor para esse registro, caso haja, ele efetua o siga-me, caso não faz a ligação normal.


Para resumir, se você tem um arquivo de configuração extensions.conf zerado, apenas com o contexto default criado, faça as seguintes alterações conforme abaixo:


[default]
include = > sigame-on
include = > sigame-off
include = > disca



============================================
; LOG DO ASTERISK ATIVANDO O SIGA-ME NO RAMAL
  == Using SIP RTP CoS mark 5
  == Using SIP VRTP CoS mark 6
  == Using UDPTL CoS mark 5
    -- Executing [*71*3003@internas:1] NoCDR("SIP/3001-0000000e", "") in new stack
    -- Executing [*71*3003@internas:2] Set("SIP/3001-0000000e", "DB(CF/3001)=3003") in new stack
    -- Executing [*71*3003@internas:3] Playback("SIP/3001-0000000e", "beep") in new stack
    -- Playing 'beep.alaw' (language 'pt_BR')
    -- Executing [*71*3003@internas:4] Playback("SIP/3001-0000000e", "vm-saved") in new stack
    -- Playing 'vm-saved.slin' (language 'pt_BR')
    -- Executing [*71*3003@internas:5] Hangup("SIP/3001-0000000e", "") in new stack
  == Spawn extension (internas, *71*3003, 5) exited non-zero on 'SIP/3001-0000000e'



; LOG ASTERISK RETIRANDO O SIGAME DO RAMAL
  == Using SIP RTP CoS mark 5
  == Using SIP VRTP CoS mark 6
  == Using UDPTL CoS mark 5
    -- Executing [*72*@internas:1] NoCDR("SIP/3001-00000016", "") in new stack
    -- Executing [*72*@internas:2] DBdel("SIP/3001-00000016", "CF/3001") in new stack
    -- DBdel: family=CF, key=3001
    -- Executing [*72*@internas:3] Playback("SIP/3001-00000016", "beep") in new stack
    -- Playing 'beep.alaw' (language 'pt_BR')
    -- Executing [*72*@internas:4] Playback("SIP/3001-00000016", "vm-saved") in new stack
    -- Playing 'vm-saved.slin' (language 'pt_BR')
    -- Executing [*72*@internas:5] Hangup("SIP/3001-00000016", "") in new stack
  == Spawn extension (internas, *72*, 5) exited non-zero on 'SIP/3001-00000016'



Façam bom proveito, eu testei usando S.O. CentOS 5.4 com asterisk 1.6.2 e funcionou perfeitamente.


Quaisquer dicas dúvidas e sugestões favor postarem pra mim que responderei o mais rápido possível.

quinta-feira, 25 de março de 2010

Counterpath X-Lite, opções avançadas e logs do asterisk.

Instalações asterisk utilizando softphones Counterpath normalmente apresentam a seguinte mensagem no log do asterisk:

ast_rtp_read: Unknown RTP codec 126 received from '0.0.0.0'


O eyeBeam possui um timer de inatividade baseado em RTCP que verifica se a chamada está ativa. O asterisk envia estes pacotes, mas para o envio quando está em “music on hold”.

Para desabilitar esta funcionalidade acesse o menu avancado do eyeBeam digitando “***7469” e mude a opção “must_have_rtcp” para “0″.

Aproveitando este post, o menu de opções avancadas oferece uma quantidade absurda de parâmetros configuráveis que vão desde interface binding até opções específicas de codecs e proxies.

Para aqueles que tem problemas em utilizar o eyebeam com uma vpn, as seguintes opções valem ouro:

system:network:auto_detect_ip="0"
system:network:local_ip="172.20.123.202"