Archive for October, 2007
Trabalhando com discos no Solaris
Para realizamos o perações com discos como formação e criação de partições, até exibir informações sobre os discos já configurados no sistema podemas utilizar o format.
O nome é bem peculiar, mas o format em primeiro instante ele apanas trabalha com os discos (assim como fdisk e cfdisk no Linux).
Vejamos um primeiro exemplo prático.
format
Teremos uma saÃda parecida com esta:
Searching for disks...doneAVAILABLE DISK SELECTIONS: 0. c0t3d0 <SUN0207 cyl 1214 alt 2 hd 9 sec 36>/sbus@1,f8000000/esp@0,8000000/sd@3,01. c0t0d0 <SUN0207 cyl 1214 alt 2 hd 9 sec 36>/sbus@1,f8000000/esp@0,8000000/sd@0,02. c1t1d0 <SUN0207 cyl 1214 alt 2 hd 9 sec 36>/sbus@1,f8000000/esp@0,8000000/sd@1,03. c1t2d0 <SUN0207 cyl 1214 alt 2 hd 9 sec 36>/sbus@1,f8000000/esp@0,8000000/sd@2,0Specify disk (enter its number):
Pedindo para que se escolha um disco
Para exemplo digamos que vamos escolher o disco 2, onde a partir deste ponto poderemos fazer as seguintes operações.
1. Se o disco não estiver formatado o format irá exibir uma mensagem informando que o disco não é formatado.
* para formatar o disco
format>format
2. Caso o disco já esteja configurado, podemos realizar outras operações como apenas exibir informações sobre informações do disco.
* para exibir configuração do disco
format>partition
format>print
Caso deseja obter informações mais completas sobre cada disco (fabricante, blocos, erros e etc)
iostat -E
OBS.: Para exibir os discos em acessar o prompt do format
Comments are off for this postformat < /dev/null
Listando dispositivos no Solaris
Temos 2 comando importantes
Primeiro deles é o prtconf, que irá exibir todas as informações completas sobre o sistema. Informações como tamanho de memória, processadores dispositivos e periféricos anexados ao sistema.
prtconf | more
Para exibir apenas memória principal
prtconf | grep Memory
Dispositivos anexados ao sistema aparecerão em forma de árvore, e dispositivos não anexados ao sistema serão exibidos com o seguinte paramêtro na frene da linha de descrição do device “(drive not attached)”, indicando que não existe um dispositivo correspondente.
prtconf | grep “not attached”
Imprimindo a versão do OBF
prtconf -V
Exibindo lista de dispositivos e drivers anexados aos dispositivos
prtconf -D
Para informações detalhadas sobre o processador (tipo, RPM)
Comments are off for this postpsrinfo -v
Aumentando a área de Swap
Primeiro verificamos qual é o tamanho total da swap.
free
Depois verificamos quanto de espaço fÃsico temos em disco para poder aumentar na memória swap.
df -hT
Definindo o quanto vamos aumentar na swap, criamos um diretório para guardar a swap
mkdir /swapdir
Depois criamos o arquivo para a swap,com um tamanho de 2GB
dd if=/dev/zero of=/swapdir/swapfile bs=1024 count=2000000
Em seguinda configuramos o nosso arquivo para swapspace (filesystem swap)
mkswap /swapdir/swapfile
Depois iniciamos a nossa segunda área de paginação
swapon /swapdir/swapfile
Para que a mesma seja carregada durante o boot
vim /etc/fstab
/swapdir/swapfile swap swap defaults 0 0
Para verificar se não houve nenhum erro
free
Para voltar a área de swap ao tamanho original
swapoff /swapdir/swapfile
rm -rf /swapdir
Depois remove as entras referentes a entrada na nova swap em /etc/fstab
OBS.:
* No Linux não é necessário que grande preocupação com a memória RAM (mas está também não deve ser desconsiderada), e sim com a memória de paginação (swap).
* Por default utilizados a swap com tendo o dobro da memória principal, exemplo, em um servidor com 1GB Ram deverá ter 2GB de Swap.
* Como um servidor com memória RAM superior a 4GB de memória RAM, a memória swap não precisa necessáriamente ter o dobro da memória RAM, pode-se adotar um tamanho igual.
* A área em disco alocada para a memória de paginação não pode ser maior que 20% do tamanho total do disco fÃsico.
* Este Post pode ser feito em qualquer distribuição Linux.
Comments are off for this postLogical Volume Manager (LVM2)
LVM é um metodo de alocação de espaço em disco em volumes lógicos que podem ser facilmente
redimencionados de acordo com a necessidade.
Com LVM alocamos um ou mais discos em um ou mais volumes lógicos. Onde o volume fÃsico (PV)
corresponde a partição fÃsica de um disco.
Os Pv são combinados em grupos de volume lógico (VG), com exceção da partição /boot que não
pose ser pertencente ao grupo de volume lógico, pois o boot loader não consegue ler a mesma.
OBS.: É possÃvel criar um ou mais PV por disco.
O grupo de volume lógico (VG) é divido em volumes lógicos (LV), sendo estes ativados no SO
como file system do tipo ext3 ou reiserfs.
Quando o file system chega a sua total capacidade é possÃvel utilizar espaço livre existente
no VG para que seja incrementado no file system e expandindo a partição.
Para implementarmos o LVM é necessário o que Kernel Linux tenha suporte ao mesmo.
1. Criando um volume fÃsico considerando que o mesmo seja /dev/sda1
pvcreate /dev/sda1
* para remover um PV
pvremove /dev/sda1
2. Criar VG (Volume Groups), onde você pode remover ou adicionar PVs no VG posteriormente
vgcreate nome_vg /dev/sda1
* para extender o VG
pvcreate /dev/sdc1
vgextend nome_vg /dev/sdc1
* para remover um PV do VG
vgremove nome_vg
* para reduzir o tamanho do VG (não remove o PV do VG)
vgreduce nome_vg /dev/sdc1
3. Criando um LV
lvcreate -L500M -n nome_lv nome_vg
* para criar um LV alocando uma determinada quantidade de PE (por default um PE tem tamanho igual a 4MB)
lvcreate -l 256 -n nome_lv nome_vg
* para criar um LV, com “strip mapping”, tendo 2 stripes e strip com 4KB (por default o LVM utilizar “linear mapping”)
lvcreate -i2 -I4 –size 2G -n nome_lg_strip nome_vg
* podemos também especificar quais PV dentro de um determinado VG queremos alocar para o Lv
lvcreate -i2 -I4 -L128G -n nome_lv_strip nome_vg /dev/sda1 /dev/sdb1
* para remove o LV (o filesystem não pode estar montado)
umount /dev/nome_vg/nome_lv
lvremove /dev/nome_vg/nome_lv
* para extender o tamanho de um LV em 1G
lvextend -L10G /dev/nome_vg/nome_lv
ou:
lvextend -L+1G /dev/nome_lv/nome_lv
* Esta operação só é possÃvel on-line a partir do Red Hat Enterprise Linux 4, utilizando o seguinte comando:
ext2online /dev/nome_vg/nome_lv
* para reiserfs, utilize o comando “resize_reiserfs”, não existindo estes comandos é necessário realizar um boot no servidor.
4. Criando o filesystem
mkfs.ext3 /dev/nome_vg/nome_lv
mount /dev/nome_vg/nome_lv /lvmfs
* para que o filesystem seja montado durante o boot
vim /etc/fstab
/dev/nome_vg/nome_lv /lvmfs etx3 defaults 1 2
5. Fundindo VGs
pvcreate /dev/sdc1
vgcreate merge_vg /dev/sdc1
vgmerge master_vg merge_vg
* isto faz com que o VG “merge_vg” será inserido no final do VG “master_vg” mas o final da união será o VG “master_vg”
OBS.: Comandos adicionas
* Exibe informações sobre os Pvs
pvs
* Exibe atributos dos PVs
pvdisplay
* Exibe informações sobre os VGs
vgs
* Exibe atributos dos VGs
vgdisplay
* Exibe informações sobre os LVs
lvs
* Exibe atributos dos LVs
lvdisplay
* Lista todos os PVs
pvscan
* Busca todos os VGs
vgscan
* Lista todos os LVs contidos no VG
lvscan
* Mais possibilidades de comandos
lvm help
6. Checagem e correção de um File System no LV
e2fsck.ext3 /dev/nome_vg/nome_lv
OBS.:=> linear mapping: permite que um sistema de arquivos ou banco de dados com mais de um único volume seja criado usando dois discos fÃsicos.
=> strip mapping: um único LV combina o desempenho de 2 PVs, e é usado frequentemente para atingir alta taxa de transferência de dados para o disco.
Fontes:
Comments are off for this posthttp://www.tldp.org/HOWTO/LVM-HOWTO/
http://sources.redhat.com/lvm2/
http://www.redhat.com/magazine/009jul05/features/lvm2/
Configurando uma interface de rede TUN/TAP
Primeiro carregamos o módulo necessário.
modprobe tun
Depois criamos a interface tap:
tunctl -t tap0 -u login
ip link set up dev tap0
Para que a interface tap0 seja iniciada automáticamente é necessário adicionar as configurações abaixo em /etc/network/interfaces:
auto tap0
iface tap0 inet dhcp
tunctl_user login
A entrada “login” é relacionada ao usuário que irá carregar a interface de virtualização, caso este usuário seja o root estas entradas não são necessárias.
Havendo algum
Pronto sua interface tap, esta finalizada.
Configurando interface Bridge
Instação dos pacotes necessários para configuração de uma interface bridge.
apt-get install bridge-utils uml-utilities
Primeiro criamos a bridge
brctl addbr br0
brctl addif br0 eth0 eth1
Depois adicionamos as seguintes configurações no aquivo /etc/network/interfaces
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1auto eth0
iface eth0 inet manualauto eth1
iface eth1 inet manual
Depois basta realizar um restar nas interfaces de rede:
/etc/init.d/networking restart
OBS.: A configuração acima foi realizada para se utilizar com servidor DHCP podendo ser alterada para IP Static.
Comments are off for this postDHCP Failover
Este é um sistema especifico de servidor DHCP Master e Slave, onde havendo falha no servidor DHCP Master, a distribuição e o controle de IP passa a ser gerênciado pelo servidor DHCP Slave.
Para criar este contexto é necessário realizar os seguintes passos: (deve ser realizado nos dois servidores)
apt-get install dhcp3-server
Após o “apt” concluir a instalação é necessário realizar a configuração dos servidores DHCP Master e Slave.
No servidor DHCP Master:
Adicione a configuração abaixo no arquivo /etc/dhcp3/dhcpd.conf
ddns-update-style none;one-lease-per-client true;option domain-name "meudominio.com";option domain-name-servers 192.168.0.4, 192.168.0.5;option subnet-mask 255.255.255.0;default-lease-time 300;max-lease-time 300;authoritative;failover peer "dhcp" {primary;address 192.168.0.2;port 519;peer address 192.168.0.3;peer port 520;max-response-delay 60;max-unacked-updates 10;mclt 600;split 128;load balance max seconds 3;}include "/etc/dhcp3/dhcpd.master";
Depois crie o arquivo /etc/dhcp3/dhcpd.master e adicione as configurações abaixo:
subnet 192.168.0.0 netmask 255.255.255.0 {pool {failover peer "dhcp";range 192.168.0.11 192.168.0.254;deny dynamic bootp clients;}option routers 192.168.0.1;}
No servidor DHCP Slave:
Adicione a seguinte configuração no arquivo /etc/dhcp3/dhcpd.conf
ddns-update-style none;one-lease-per-client true;option domain-name "meudominio.com";option domain-name-servers 192.168.0.4, 192.168.0.5;option subnet-mask 255.255.255.0;default-lease-time 300;max-lease-time 300;authoritative;failover peer "dhcp" {secondary;address 192.168.0.3;port 520;peer address 192.168.0.2;peer port 519;max-response-delay 60;max-unacked-updates 10;}include "/etc/dhcp3/dhcpd.slave";
Depois crie o arquivo /etc/dhcp3/dhcpd.slave com as mesmas configurações do arquivo dhcpd.master.
Após basta fazer um start no serviço DHCP em ambos os servidores.
# /etc/init.d/dhcp3-server start
OBS.:
Para realizar testes, basta realizar um stop em um dos servidores DHCP
# /etc/init.d/dhcp3-server stop
E acompanhar os logs através do /var/log/messages
# tail -f /var/log/messages
Outra dica é se precisarmos saber quais IPs foram fornecidos pelo servidor DHCP para o clientes basta verificar o arquivo dhpcd.leases
# less /var/lib/dhcp3/dhcpd.leases
Se o arquivo não for encontrado, crie um arquivo em branco e realize o restart do serviço DHCP.
Comments are off for this post# touch /var/lib/dhcp3/dhcpd.leases