Blog com conteúdo sobre os projetos que tenho trabalhado: SEGURANÇA DA INFORMAÇÃO, VOIP COM ASTERISK, VIRTUALIZAÇÃO DE SERVIDORES VMWARE SERVER, ESX, EMAIL, FIREWALL, WEB-PROXIES, VPN, MIGRAÇÕES, LDAP, SAMBA, AD, ORACLE, MySQL, RADIUS, DHCP, DNS, PHP, C++, AUTENTICAÇÃO WIFI, CAPTIVEPORTAL, SATELITE, NETWORK...
Pesquisar neste blog
sexta-feira, 18 de setembro de 2009
O que é CCMI (Capability Maturity Model Integration)
Derivado principalmente dos modelos SW-CMM (CMM for software, voltado ao desenvolvimento de software básico, ou de infra-estrutura) e SE-CMM (CMM for System Engineering, voltado ao desenvolvimento de aplicações de software).
O CMMI surgiu da percepção de que software básico e aplicações são desenvolvidos em contextos integrados. Além disso, o novo modelo reforça aspectos relacionados à gestão de fornecedores e poderá assimilar outros processos futuramente.
A característica mais memorável dos CMM´s, a escala dos níveis de maturidade, mantém as mesmas classificações, mas essas são definidas mais radicalmente pelo modelo.
Sendo um modelo de referência de processos, o CMMI, como seus antecessores, não defini como o processo deve ser implementado, mas prescreve suas características estruturais e semânticas em termos de objetivos e do grau de qualidade com que o trabalho deve ser realizado.
Cada nível de maturidade possui uma caracterização bem distinta:
* Diz-se que o nível 0 (incompleto) corresponde a ausência de qualquer processo de desenvolvimento. Não se pode fazer qualquer asserção sobre desenvolvimentos futuros;
* Organizações de nível 1 (estruturado) possuem um processo mínimo de desenvolvimento, capaz de orientar as macro-tarefas no nível operacional;
* Organizações de nível 2 (gerenciado) têm capacidade de gerenciar um ciclo de desenvolvimento, isto é, um projeto. Costuma-se caracterizar o nível 2 pela capacidade de gerir projetos. A maioria das empresas brasileiras está buscando certificação nesse nível;
* Organizações de nível 3 (definido) são orientadas a processos. Além dos fluxos de atividades, gerenciam os aspectos organizacionais, técnicos e de integração de equipes e fornecedores em função da definição do processo;
* Organizações de nível 4 (gestão quantitativa) gerem o processo com métricas quantitativas através do tempo. Conseguem avaliar o desempenho dos vários ciclos de desenvolvimento e comparar seus indicadores, obtendo previsibilidade;
* Organizações de nível 5 (otimização) controlam a avaliam o processo quantitativamente, podendo intervir em suas especificação para otimizá-lo continuamente.
É o mais alto nível de maturidade definido pelo CMMI.
Motivação para adotar o CMMI
A dominância da tecnologia da informação tornou os softwares indispensáveis as organizações, gerando preocupações consideráveis com a qualidade desses produtos. A aceitação dos CMMs, que repetiu com o CMMI, fez da certificação por esses modelos uma referência universal de qualidade em desenvolvimento de software. A competição global ratificou o cenário, levando mais empresas a buscar suas certificações.
Dessa forma, o objetivo de muitas empresas, especialmente nos países me desenvolvimento, como o Brasil, tem sido obter certificações CMMI para atender a exigências explícitas do mercado.
Mais importante, entretanto, é compreender que um modelo de maturidade pode auxiliar organizações a operar e competir melhor, cumprindo com mais eficiência o seu objetivo essencial de viabilidade econômica e social.
Como chegar lá
Um gestor atento diria que uma certificação CMMI evidencia que a empresa usufrui de benefícios associados a um certo nível de maturidade. Consideramos, então, que o esforço para uma certificação consista em conseguir ser aprovado na auditoria (appraisal). Apesar de um tanto ingênua, essa visão ajuda a entender o processo.
Uma auditoria oficial do CMMI segue um método, o SCAMPI (Standard CMMI Appraisal Method for Process Improvement). Basicamente, o SCAMPI verifica as seguintes fontes de informações:
* Instrumentação aplicada ao processo (tecnologia, infra-estrutura, guias de referência, etc..)
* Entrevistas e questionários aplicados à equipe
* Apresentação da equipe para os auditores.
* Documentação gerada pelo processo (artefatos metodológicos em hardcopy ou softcopy)
A verificação é feita contra requisitos-chave, chamados de Practice Implentation Indicators, que compõe os ARC (Appraisal Requirement for CMMI).
A apresentação para a auditoria, portanto, trata de adequar o processo de desenvolvimento software/sistemas da área-candidata aos requisitos do SCAMPI (especificados no ARC).
quarta-feira, 16 de setembro de 2009
Lista de algumas Empresas CMMI no Brasil
7COMm | SP | 2005 | Synchro PP&T | CMMI | |
Alstom Transportes | SP | 2002 | ISD | CMM | |
AMS Tecnologia | SP | 2004 | ISD | CMM | |
Atech Tecnologias Críticas | SP | 2003 | ISD | CMM | |
Atos Origin | SP | 2004 | ISD | CMM | |
Brasília | DF | 2003 | Procesix | CMM | |
BRQ | SP | 2004 | Trimentus | CMMI | |
BSI Tecnologia | PR | 2004 | ISD | CMM | |
C.E.S.A.R | PE | 2003 | ISD | CMM | |
Citibank | SP | 2003 | CMM | ||
CPM | SP | 2005 | ISD | CMM | |
CPM | SC | 2005 | ISD | CMMI | |
CPqD | SP | 2003 | ISD | CMM | |
Credicard | SP | 1998 | ISD | CMM | |
CTIS | DF | 2005 | ISD | CMM | |
Dell | RS | 2003 | ISD | CMM | |
Disoft | SP | 2003 | Procesix | CMM | |
DRM | SP | 2005 | ISD | CMM | |
DTS Latin America | SP | 2003 | Procesix | CMM | |
e-Dablio | RJ | 2003 | ISD | CMM | |
FITec | PE | 2005 | ISD | CMM | |
Fortaleza | CE | 2003 | Procesix | CMM | |
G&P – Gennari & Peartree | SP | 2003 | ISD | CMM | |
General Motors | SP | 2005 | ISD | CMMI | |
Getronics | SP | 2005 | Procesix | CMM | |
HP | SP | 2005 | ISD | CMM | |
Inatel | MG | 2003 | ISD | CMM | |
Infoserver | SP | 2004 | ISD | CMM | |
Instituto Atlântico | CE | 2003 | ISD | CMM | |
Itaú | SP | 2005 | ISD | CMM | |
Logocenter | SC | 2005 | ISD | CMM | |
M.I. Montreal Informática | RJ | 2004 | Procesix | CMM | |
Matera Systems | SP | 2005 | ISD | CMMI | |
Microsiga Software | SP | 2005 | Procesix | CMMI | |
MSA Informática | MG | 2005 | ESICenter | CMMI | |
Nec do Brasil | SP | 2003 | ISD | CMM | |
Prime Informática | SP | 2005 | Procesix | CMM | |
Procwork | SP | 2005 | ISD | CMM | |
Recife | PE | 2002 | ISD | CMM | |
Relacional Consultoria | RJ | 2005 | Liveware | CMMI | |
Santander Banespa | SP | 2005 | ISD | CMM | |
SERPRO Salvador | BA | 2003 | Procesix | CMM | |
Spress Informática S/A | MG | 2005 | ISD | CMM | |
Tele Design | SP | 2002 | ISD | CMM | |
TSE | DF | 2005 | Liveware | CMMI | |
T-Systems | SP | 2005 | ISD | CMM | |
Unitech | BA | 2005 | ISD | CMM | |
Vixteam | ES | 2006 | Liveware | CMMI | |
Itautec | 2008 | ISD | CMMI | ||
LG | 2008 | CMMI | |||
Relacional | 2006 | Liveware | CMMI | ||
Vorlans | 2007 | ISD | CMMI | ||
Embraer | SP | 2006 | ISD | CMMI | |
ZCR Informática | BA | 2006 | ISD | CMMI | |
Johnson & Johnson | SP | Crest Consulting | CMMI | ||
Message | RJ | 2008 | Crest Consulting | CMMI | |
GSW | 2008 | Crest Consulting | CMMI | ||
Complex | SP | 2009 | Crest Consulting | CMMI | |
Cetil Sistemas de Informática | SC | 2009 | ISD | CMMI | |
CTIS | PR | 2007 | ISD | CMMI | |
META IT | - | 2007 | - | CMMI |
Fonte: BlogCMMI
Como analisar a produtividade de nossa equipe?
Atualmente muitos falam sobre produtividade, mas sem compreender o que de fato é produtivo.
Vamos supor um exemplo:
Temos dois programadores muito bons, o Primeiro (programadorA) era conhecido na empresa como um dos mais rápidos. Foi passado para ele um programa de 20h (programa A). Ele terminou o programa em aproximadamente 7h (35% do tempo).
O segundo programador (programadorB) também era conhecido como muito bom, mas não tão bom quanto o programadorA. Foi passado para ele um programa de 16h (programa B). Ele terminou o programa em aproximadamente 11h (68%).
Se você tivéssemos que premiar alguém, quem você premiaria? Olhando esses números você não tem dúvidas de quem é o melhor, correto?
Esta é a análise feita pela maioria das pessoas, no entanto, os programas foram para a área de testes.
Quando retornaram da área de testes o programa A necessitava de várias correções e ajustes, já o programa B praticamente não teve erro.
Nas idas e vindas do programa A, utilizou-se mais 9h, ou seja, o programa dele não foi finalizado em 7h e sim em 16h.
Agora vamos refazer a análise.
- programadorA– utilizou 80% do tempo
- programadorB – utilizou 68% do tempo
Ambos tiveram uma excelente produtividade, mas analisando os dados da forma correta, consegue-se ver quem foi o mais eficiente quem teve a melhor produtividade naquele projeto.
Enfim, como dito, a primeira análise é a mais comum (e equivocada), mas devemos sempre avaliar todo o ciclo para ter certeza de que estamos avaliando o processo da forma correta.
terça-feira, 15 de setembro de 2009
PMI lança Comunidade de Práticas Ágeis na Agile2009
O Project Management Institute (PMI) lançou oficialmente a sua Comunidade de Práticas Ágeis na conferência Agile2009. A missão do grupo é: "Equipar os membros do PMI e com habilidades e conhecimentos de metodologias Ágeis" Mike Griffiths foi o responsável por fazer as coisas andarem, quando ele lançou um desafio ao PMI na Agile 2007, para que este formasse um grupo de trabalho específico para metodologias ágeis.
O grupo de voluntários que criou a Comunidade de Práticas Ágeis (CoP), aplicou práticas ágeis durante o trabalho de criação da própria organização. Eles trabalharam com iterações de 2 semanas e fizeram retrospectivas visando melhorar seus processos. Jesse Fewell, desempenhou um papel análogo ao Product Owner de uma equipe Scrum. Em uma entrevista gravada para o Project Shrink Podcast, Jesse deu um exemplo de como a equipe repriorizou seu"backlog" com o intuito de entregar mais valor rapidamente. O resultado foi a criação de uma wiki onde as pessoas puderam encontrar informações sobre o grupo, e sobre metodologias ágeis, mesmo antes de todo o trabalho administrativo de formação do grupo estivesse completo.
O que é um Gerente de Projetos Ágil? foi uma sessão interativa, apresentada por Pat Reed e Jesse Fewell, que explorou o papel do gerente de projetos em um contexto ágil.
Mike Cottmeyer apresentou O PMP Ágil: Ensinando novos truques a um cachorro velho, que examinou os processos e as áreas de conhecimento do PMI e como adaptá-los aos projetos ágeis.
No último dia de sessões oficiais, Jesse apresentou a história de como a Comunidade de Práticas Ágeis do PMI foi criada, no Growing PMI Using Agile (Melhorando o PMI usando metodologias ágeis) .
A equipe distribuída responsável por fazer da Comunidade de Práticas Ágeis do PMI uma realidade inclui:
- Sanjiv Agostinho
- Rodney Stijns
- Brian Bozzuto
- Mike Cottmeyer
- Mike Griffiths
- Jean Laporte
- Dan Mezick
- Ainsley Nies
- Dave Antes
- Pat Reed
- George Schlitz
- Michele invasao
- Bob Tarne
Fonte: InfoQ
segunda-feira, 14 de setembro de 2009
Artigo Publicado no WSL2009 - Monitoramento de Taxa de Erros em Transmissão de Redes Usando Software Livre
como prometido estou disponibilizando meu artigo científico aprovado e apresentado no WSL2009. De 110 Trabalhos enviados foram aprovados apenas 24.
Overview
Monitoramento de Taxa de Erros em Transmissão de Redes Usando Software Livre
Marcos Abadi (Centro Universitário Metodista IPA-RS)
Carlos Henrique Cano (Centro Universitario Metodista IPA-RS) - Orientador
Rubem Fagundes (PUC-RS) - Co-orientador
http://www.fisl.org.br/10/www/wsl2009-aprovados
>> Download do Artigo fonte do plugin Aqui <<
sexta-feira, 4 de setembro de 2009
Como Criar e Gerenciar um Logical Volume Manager (LVM)
Mas o que é LVM?
LVM é um gerenciador de disco que trabalha em alto nível fornecendo uma nova forma de trabalhar com partições no sistema.
O LVM trabalha adicionando mais uma camada ao gerenciamento de disco, as partições criadas sobre o LVM podem ser redimensionadas. Podemos adicionar novos discos físicos quando o espaço em disco atual acabar, e melhor, não teremos que mover os dados de um disco para outro. Basta redimensionar as partições atuais.
Você pode usar o LVM em diversos discos ou apenas em um podendo deixar espaço livre para futuras adequações de espaço ou mover o espaço ocioso de uma partição para outra com pouco espaço.
Onde encontro?
As principais distribuições já trazem o suporte ao LVM instalado e ativado, inclusive as distribuições Fedora Core e RedHat já possuem em seus instaladores (Anaconda) gráficos, suporte a criação de unidades utilizando o LVM já no processo de instalação.
Overview do LVM
Na base de um sistema LVM temos os discos rígidos fisicamente conectados ao computador, depois temos as seguintes camadas.
PV (Physical Volume): Basicamente server para criar o UUID, é um identificador único para cada volume físico.
VG (Volume Group): Um VG é o agrupamento de vários PVs, você pode ter vários VGs também, porem se um VG estiver sem espaço e o outro VG tiver espaço de sobra você não poderá usar o espaço livre de um VG para aumentar o outro. Em instalações normais é necessário a criação de apenas um VG.
LV (Logical Volume): Os LVs, nesta camada é feita a formatação e montagem do sistema de arquivos no Linux. Essa é a única camada que realmente é acessível para o usuário.
Agora iremos ver os passos para criar um sistema de armazenamento baseados em LVM e pode ser divididos nas seguintes etapas lógicas.:
1 - Criação das partições
2 - Criação do Volume Físico
3 - Criação do grupo
4 - Criação dos volumes lógicos
1 - Criação das partições
Com um ou mais discos conectados podemos criar partições utilizando para isso o programa fdisk e definindo as partições como sendo do tipo 8e ou Linux LVM.
1.1 - fdisk /dev/hdc
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14593, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-14593, default 14593):
Using default value 14593
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/hdc: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 1 14593 117218241 8e Linux LVM
Aqui foi criado apenas um partição de um disco de 120Gb, só é necessário apenas uma única partição pois todo o gerenciamento será feito utilizando o LVM.
2.1 - Criando Physical Volume (PV)
Para criar um volume físico basta usar o seguinte comando:
# pvcreate /dev/hdc1
Physical volume "/dev/hdc1" successfully created
Você pode fazer isso com quantas partições você quiser, pode ser em discos separados ou no mesmo disco.
Para ver como ficou seu volume físico basta executar o seguinte comando:
# pvdisplay
--- NEW Physical volume ---
PV Name /dev/hdc1
VG Name
PV Size 111.79 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID jC3Yby-Hjbl-0Xc1-akAR-nfeL-PoFw-1mODLa
Notem que o VG Name está vazio, isso indica que o nosso volume físico ainda não participa de nenhum grupo, e na última linha podemos ver o PV UUID, esse número é que vai identificar o nosso volume físico dentro da estrutura do LVM.
3.1 - Criando Volume Group (VG)
Um grupo é a união de um ou mais volumes físicos, o comando para criar um grupo é o vgcreate, obrigatoriamente você deve especificar o nome do grupo e quais os volumes físicos que farão parte deste grupo.
# vgcreate backup /dev/hdc1
Volume group "backup" successfully created
Você pode especificar mais de um volume físico, por exemplo.
# vgcreate backup1 /dev/hdc1 /dev/hdc2 /dev/hdc3
Volume group "backup1" successfully created
Agora que criamos o nosso grupo vamos ver como ele ficou, para isso vamos usar o comando vgdisplay.
# vgdisplay
--- Volume group ---
VG Name backup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 111.79 GB
PE Size 4.00 MB
Total PE 28617
Alloc PE / Size 0 / 0
Free PE / Size 28617 / 111.79 GB
VG UUID rWTn7n-pZTt-rN5t-0W3e-TzQL-ODyN-xROa3N
Aqui temos diversas informação sobre o grupo, uma informação muito importante é Alloc PE / Size e Free PE / Size que respectivamente mostram quanto do espaço em disco do grupo está em uso e quanto está livre para ser alocado.
Se você executar o comando pvdisplay agora poderá notar algumas mudanças como informações sobre o nome do volume e outras sobre a alocação do volume físico, veja abaixo.
# pvdisplay
--- Physical volume ---
PV Name /dev/hdc1
VG Name backup
PV Size 111.79 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 28617
Free PE 26057
Allocated PE 2560
PV UUID jC3Yby-Hjbl-0Xc1-akAR-nfeL-PoFw-1mODLa
4.1 - Criando Logical Volume (LV)
Para criar um volume iremos usar o comando lvcreate.
# lvcreate --name dados --size 10g backup
Logical volume "dados" created
Aqui criamos uma "partição" com o nome (--name dados) dados com o tamanho (--size 10g) de 10Gb no grupo backup.
O tamanho pode ser especificado usando g ou G para Gigas, m ou M para Megas, t ou T para Terabytes.
Para ver as informações sobre todos os volumes no seu sistema você pode utilizar o comando lvdisplay sem argumentos ou lvdisplay NOME_DO_GROPO.
# lvdisplay backup
--- Logical volume ---
LV Name /dev/backup/dados
VG Name backup
LV UUID pPKBWV-yuCC-g6j3-w9lE-cQxB-DRUq-tYk073
LV Write Access read/write
LV Status available
# open 0
LV Size 10.00 GB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:7
Se você executar o comando vgdisplay poderá ver que o Alloc PE / Size e o Free PE / Size mudaram.
Alloc PE / Size 2560 / 10.00 GB
Free PE / Size 26057 / 101.79 GB
Agora ele informa que estamos usando 10Gb e ainda temos 101.79 Gb para usar.
Utilizando os volumes
Agora que já criamos um volume podemos trabalhar com ele como uma partição normal, a unica diferença e que ao invés de você acessar o /dev/hdc1 você irá acessar o /dev/NOME_DO_GRUPO/NOME_DO_VOLUME, por exemplo.
Aqui eu estou utilizando o ext3 como sistema de arquivo principal, porém eu sito observações sobre como fazer usando o reiserfs, particularmente achei o reiserfs mais pratico nas operações re mudança de tamanho do volume.
# mkfs -t ext3 /dev/backup/dados
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Observação: Para criar um volume formatado com reiserfs utilize o comando mkfs com a opção -t reiserfs.
Depois de criado o sistema de arquivos podemos montar e até mesmo adicinar no /etc/fstab.
# vi /etc/fstab
/dev/backup/dados /mnt/daos ext3 defaults 1 2
# mkdir /mnt/dados
# mount /mnt/daos
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/backup-daos 9.9G 151M 9.2G 2% /mnt/daos
Aqui eu editei o /etc/fstab e adicionei uma linha para a nova partição, criei o diretório e montei o diretório, também executei o comand df para mostrar o satus atual da partição, veja que o /dev/backup/dados foi automaticamente mapeado para a unidade /dev/mapper/backup-dados.
Se quiser ter mais partições basta repetir os passos anteriores.
Alterando os tamanhos
Agora que já temos uma partição já criada e funcionando é hora de mexer um pouco nela, vamos mudar o tamanho, aumentando, diminuindo, removendo o nosso volume.
Aumentando um Logical Volume
Como já vimos anteriormente a unidade /dev/backup/dados tem um total de 10Gb, vamos adicionar algum conteúdo e depois vamos aumentar para 50Gb.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/backup-dados 9.9G 9.5G 0 100% /mnt/dados
O disco está completamente cheio, para aumenta o tamanho da unidade primeiro precisamos desmonta-la.
umount /mnt/dados
Agora temos que executar o comando lvresize e especificar o novo tamanho da unidade.
# lvresize --size 50g /dev/backup/dados
Extending logical volume dados to 50.00 GB
Logical volume dados successfully resized
A mensagem mostra que o volume foi modificado com sucesso, agora ele tem 50Gb, será?
Vamos monta-lo e usar o comando df para ver como ficou.
# mount /mnt/dados
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/backup-dados 9.9G 9.5G 0 100% /mnt/dados
Nada mudou? será que fizemos alguma coisa errada?
Claro que fizemos, somente executar o comando lvresize não resolve, temos alguns outros passos para executar, vamos fazer os passos que faltaram.
# umount /mnt/dados
Novamente desmontamos a unidade, agora vamos fazer o que faltou, primeiro execute o fsck com a opção -f para forçar uma verificação da integridade da unidade.
# fsck -f /dev/backup/dados
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/backup/dados: 2305/1310720 files (31.0% non-contiguous), 2512828/2621440 blocks
Se você não usar o -f o fsck não fará nenhuma verificação, agora vamos usar o comando resize2fs para unidades formatadas com o ext2 e ext3 ou o comando resize_reiserfs para unidades com reiserfs.
# resize2fs /dev/backup/dados
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/backup/dados to 13107200 (4k) blocks.
The filesystem on /dev/backup/dados is now 13107200 blocks long.
Observação: Se você estiver usando o sistema de arquivos reiserfs utilize o comando resize_reiserfs, com o reiserfs você não precisa executar o fsck antes de usar o resize_reiserfs.
# resize_reiserfs /dev/backup/dados
resize_reiserfs 3.6.19 (2003 www.namesys.com)
ReiserFS report:
blocksize 4096
block count 1310720 (524288)
free blocks 1302469 (516061)
bitmap block count 40 (16)
Syncing..done
resize_reiserfs: Resizing finished successfully.
Pronto, agora vamos montar a unidade e vamos usar o df para verificar o tamanho que ficou.
# mount /dev/backup/dados /mnt/dados
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/backup-dados 50G 9.5G 38G 21% /mnt/dados
Agora o nosso volume está com 50Gb, não tivemos nenhuma perda de dados nem problemas, se fosse um servidor essa operação leva poucos minutos e poderia facilmente ser feita no horario de almoço ou após o expediente sem a parada total da maquina.
Vamos agora aumentar em mais 1Gb o volume para mostar o uso da ferramenta lvextend e o que acontece se você executar o resize2fs antes de fazer um fsck.
# lvextend --size +1g /dev/backup/dados
Extending logical volume dados to 51.00 GB
Logical volume dados successfully resized
# resize2fs /dev/backup/dados
resize2fs 1.38 (30-Jun-2005)
/dev/backup/dados is mounted; can't resize a mounted filesystem!
Esqueci de desmontar para poder redimencionar.
# umount /dev/backup/dados
# resize2fs /dev/backup/dados
resize2fs 1.38 (30-Jun-2005)
Please run 'e2fsck -f /dev/backup/dados' first.
Não executei o fsck, vamos executá-lo conforme ele manda.
# e2fsck -f /dev/backup/dados
e2fsck 1.38 (30-Jun-2005)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/backup/dados: 2305/6553600 files (31.0% non-contiguous), 2679872/13107200 blocks
Agora o volume está com 51Gb, bastante espaço, agora vamos voltar o tamanho dele para 50Gb.
Diminuindo um Logical Volume
Para dimuir um volume vamos usar as ferramentas lvresize, resize2fs e fsck, só que em ordem um pouco diferente.
Primeiro vamos desmontar o volume.
Agora vamos usar o comando resize2fs só que de forma um pouco diferente.
# resize2fs /dev/backup/dados 30G
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/backup/dados to 7864320 (4k) blocks.
The filesystem on /dev/backup/dados is now 7864320 blocks long.
Depois de informar o dispositivo precisamos colocar o novo tamanho da unidade.
Observação: Se você estiver usando reiserfs você deve usar o comand resize_reiserfs, porém não precisa executar o fsck antes de fazer a redução do tamanho do volume.
# resize_reiserfs -s 3G /dev/backup/dados
resize_reiserfs 3.6.19 (2003 www.namesys.com)
O volume já foi reduzido só que o espaço liberado não foi devolvido para o grupo para que possa ser usado em outro volume, se voce executar o comando vgdisplay verá que ainda aparece como sendo utilizados 51Gb.
# vgdisplay
Alloc PE / Size 13056 / 51.00 GB
# lvdisplay backup
--- Logical volume ---
LV Name /dev/backup/dados
VG Name backup
LV UUID pPKBWV-yuCC-g6j3-w9lE-cQxB-DRUq-tYk073
LV Write Access read/write
LV Status available
# open 0
LV Size 51.00 GB
Current LE 13056
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:7
Para devolver o espaço para que ele possa ser usado novamente você vai precisar usar o comando lvresize e especificar o tamanho que o volume deve ter.
# lvresize --size 30G /dev/backup/dados
WARNING: Reducing active logical volume to 30.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce dados? [y/n]: y
Reducing logical volume dados to 30.00 GB
Logical volume dados successfully resized
Pronto agora o espaço estará disponivel para uso.
# lvdisplay backup
--- Logical volume ---
LV Name /dev/backup/dados
VG Name backup
LV UUID pPKBWV-yuCC-g6j3-w9lE-cQxB-DRUq-tYk073
LV Write Access read/write
LV Status available
# open 0
LV Size 30.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:7
Vamos montar a unidade e verifica o tamanho que ela tem agora.
# mount /dev/backup/dados /mnt/dados
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/backup-dados 30G 9.5G 19G 34% /mnt/dados
Informação importante, todas as vezes que tentei reduzir o tamanho de um volume usando o lvreduce ou o lvresize antes do resize2fs não fiquei muito contente, tive perda total dos dados, veja o que acontece.
# lvreduce --size -10G /dev/backup/dados
WARNING: Reducing active logical volume to 20.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce dados? [y/n]: y
Reducing logical volume dados to 20.00 GB
Logical volume dados successfully resized
# e2fsck -f /dev/backup/dados
e2fsck 1.38 (30-Jun-2005)
The filesystem size (according to the superblock) is 7864320 blocks
The physical size of the device is 5242880 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort
Pass 1: Checking inodes, blocks, and sizes
Error reading block 5242882 (Invalid argument) while doing inode scan. Ignore error
Error while scanning inodes (2621440): Can't read next inode
e2fsck: aborted
O mais importante é que você faça um backup antes de efetuar essas operações.
Excluindo um Logical Volume
Essa operação é a mais simples de todas, usaremos apenas o comando lvremove.
# lvremove /dev/backup/dados
Do you really want to remove active logical volume "dados"? [y/n]: y
Logical volume "dados" successfully removed
Adicionando outro disco no Volume Group
Agora vamos adicionar um outro disco ao nosso volume backup que já existe, para essa operação vamos utilizar o comando pvcreate para criar o volume fisico e o vgextend para extender o nosso volume backup.
Criando o Phisical Volume
Vamos criar a partição em nosso outro disco.
# fdisk /dev/hdd
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hdd: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14593, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-14593, default 14593): 14593
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/hdd: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdd1 1 14593 117218241 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Agora vamos criar o volume físico.
# pvcreate /dev/hdd1
Physical volume "/dev/hdd1" successfully created
Depois que volume for criado podemos ver todos os volumes físicos com o comando pvdisplay.
# pvdisplay
--- Physical volume ---
PV Name /dev/hdc1
VG Name backup
PV Size 111.79 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 28617
Free PE 28617
Allocated PE 0
PV UUID jC3Yby-Hjbl-0Xc1-akAR-nfeL-PoFw-1mODLa
--- NEW Physical volume ---
PV Name /dev/hdd1
VG Name
PV Size 111.79 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5R1YzH-sbUP-y2Jn-E2DX-OF97-Opsm-tSMT2k
Adicionando o novo Physical Volume no Volume Group já existente
Depois que o volume físico estiver criado você vai precisar adiciona-lo ao grupo já existente.
Mas primeiro vamos utilizar o comando vgdisplay para ver a situação atual o grupo
# vgdisplay
--- Volume group ---
VG Name backup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 13
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 111.79 GB
PE Size 4.00 MB
Total PE 28617
Alloc PE / Size 0 / 0
Free PE / Size 28617 / 111.79 GB
VG UUID rWTn7n-pZTt-rN5t-0W3e-TzQL-ODyN-xROa3N
Agora vamos usar o comando vgextend para adicionar o novo disco ao volume já existente.
# vgextend backup /dev/hdd1
Volume group "backup" successfully extended
A operação é bem rápida e fácil, vamos ver como ficou.
# vgdisplay backup
--- Volume group ---
VG Name backup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 14
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 223.57 GB
PE Size 4.00 MB
Total PE 57234
Alloc PE / Size 0 / 0
Free PE / Size 57234 / 223.57 GB
VG UUID rWTn7n-pZTt-rN5t-0W3e-TzQL-ODyN-xROa3N
Pronto, agora você já sabe as operações básicas para manutenção de volumes utilizando LVM.
Removendo um disco do volume
Para remover um disco do nosso volume já existe a operação tambem é bem simples, basta usar o comand vgreduce e informar qual a unidade que deve ser removida.
# vgreduce backup /dev/hdd1
Removed "/dev/hdd1" from volume group "backup"
Agora vamos remover as informações do volume físico do disco, para fazer isso vamos utilizar o comando pvremove.
# pvremove /dev/hdd1
Labels on physical volume "/dev/hdd1" successfully wiped
Agora é só remover a partição utilizando o fdisk.
Outros comandos úteis
Vamos mostrar apenas alguns comandos uteis para obter informações sobre a estrutura do LVM, existem muitos outros comando porém seria inviavel explicar todos eles aqui.
pvscan
# pvscan
PV /dev/hda2 VG vol0 lvm2 [18.53 GB / 10.28 GB free]
PV /dev/hdc1 VG backup lvm2 [111.79 GB / 61.79 GB free]
PV /dev/hdd1 lvm2 [111.79 GB]
Total: 3 [242.10 GB] / in use: 2 [130.32 GB] / in no VG: 1 [111.79 GB]
O pvscan mostra informações sobre os diversos volumes físicos existentes no sistema, informa o dispositivo o nome do grupo o espaço utilizado o espaço livre e o total de todos os volumes.
O dispositivo /dev/hdd1 do exemplo acima não pertence a nenhum grupo.
vgscan
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vol0" using metadata type lvm2
Found volume group "backup" using metadata type lvm2
Obtem informações sobre os grupos existentes no sistema.
lvscan
# lvscan
ACTIVE '/dev/vol0/root' [992.00 MB] inherit
ACTIVE '/dev/vol0/tmp' [992.00 MB] inherit
ACTIVE '/dev/vol0/usr' [2.91 GB] inherit
ACTIVE '/dev/vol0/src' [992.00 MB] inherit
ACTIVE '/dev/vol0/var' [992.00 MB] inherit
ACTIVE '/dev/vol0/log' [992.00 MB] inherit
ACTIVE '/dev/vol0/swap' [512.00 MB] inherit
ACTIVE '/dev/backup/dados' [1.00 GB] inherit
Obtem informações sobre todos os volumes logicos existentes no sistema e exibe de forma resumida para você.
Referências
* http://tldp.org/HOWTO/LVM-HOWTO/
* http://sources.redhat.com/lvm/
Autor
Rodrigo Luis Silva
Atualizado por Marcos Abadi