TIAGO.DIAS.ETI.BR GNU/Linux, BSD, Unix-Like & PHP

1Nov/07Off

Alterando velocidade e comunicação da placa Ethernet

Primeiro verificamos se temos os seguintes pacotes instalados.

server:~ # rpm -q ethtool
server:~ # rpm -q net-tools

Depois temos que verificar as caracteristicas da nossa placa Ethernet

server:~ # ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 30
Transceiver: internal
Auto-negotiation: on
Current message level: 0x00000007 (7)
Link detected: no

server:~#mii-tool eth0
eth0: no autonegotiation, 10baseT-HD, link ok

Agora que sabemos que a placa Ethernet aceita velocidade de 100 e full duplex, base adicionar a seguinte entrada em /etc/sysconfig/network-scripts/ifcfg-etho

vi /etc/sysconfig/network-scripts/ifcfg-eth0
ETHTOOL_OPTS="speed 100 duplex full autoneg off"

Mas para que esta configuração fique permanente é necessário adicionar a seguinte entrada em /etc/rc.local

vi /etc/rc.local
ethtool -s eth0 speed 100 duplex full autoneg off
touch /var/lock/subsys/local

OBS.:
Caso a placa Ethernet não suporte o "ethtool", pode-se utilizar a mesma configuração com o "mii-tool", digitando o comando abaixo.

mii-tool -F 100baseTx-FD eth0

Filed under: Red Hat Comments Off
17Oct/07Off

Instalando JAVA no RedHat

O primeiro passo dever ser baixa a versão necessária para sua aplicação ou a versão current do Java em http://java.com.

Hoje a versão mais recenter é jre-6u3-linux-i586-rpm.bin

Depois de feito um download crie o seguinte diretório

mkdir /usr/java

Extraia o pacote java

mv jre-6u3-linux-i586-rpm.bin /usr/java
chmod 755 /usr/java/jre-6u3-linux-i586-rpm.bin
cd /usr/java
./jre-6u3-linux-i586-rpm.bin

Leia toda a licença e aceite o termo "yes", será extraído um pacote rpm.

Instale o pacote rpm

rpm -ivh jre-6u3-linux-i586.rpm

Pronto seu Java JRE se encontra instalado eu seu servidor.

Filed under: Red Hat Comments Off
13Oct/07Off

Inicialização automática de pacotes no sistema de boot Redhat Linux

A iniciliazação automática de daemons no Redhat Linux pode ser feita de duas maneiras, pela inittab ou pelo /etc/rc.d utilizando script de execução.

Para isto basta adicionar a seguinte entrada em /etc/inittab

vi /etc/inittab
# Start automático daemonname
daemonname::once:/caminho/para/bin/daemon >/dev/null 2>&1

A segunda forma é através do /etc/init.d script

Criamos um script de inicialização em /etc/init.d/startdaemon

Com o contéudo abaixo:

#!/bin/bash
#
# chkconfig: - 91 35
# description: Starts and stops vncserver/integradorTXT

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /caminho/para/bin/startdaemon ] || exit 0

prog="startdaemon"

export DAEMON_DIR=/caminho/para/bin
export DAEMON_CONFIG=/caminho/para/conf/startdaemon.conf # somente se necessário

start() {
echo -n $"Starting $prog: "
cd $DAEMON_DIR
daemon $DAEMON_DIR/startdaemon
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/startdaemon
return $RETVAL
}

stop() {
if test "x`pidof startdaemon`" != x; then
echo -n $"Stopping $prog: "
killproc startdaemon
echo
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/startdaemon
return $RETVAL
}

case "$1" in
start)
start
;;

stop)
stop
;;

status)
status startdaemon
;;
restart)
stop
start
;;
condrestart)
if test "x`pidof startdaemon`" != x; then
stop
start
fi
;;

*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1

esac

exit 0

# eof

Depois setamos as permissões de execução

chmod 744 /etc/init.d/startdaemon

Agora colocamos o nosso serviço no inialização automática, isto pode ser feito manualmente ou automaticamente.

Se automaticamente:

/sbin/chkconfig --add startdaemon
/sbin/chkconfig --level 35 startdaemon on
/sbin/chkconfig --list startdaemon

Este comando criar todos os simbólicos links automáticamentes de acordo com os runlevels escolhidos.

Se manualmente:

cd /etc/rc.d/rc3.d
ln -s ../init.d/startdaemon S91startdaemon

cd /etc/rc.d/rc5.d
ln -s ../init.d/startdaemon S91startdaemon

cd /etc/rc.d/rc0.d
ln -s ../init.d/startdaemon K35startdaemon

cd /etc/rc.d/rc6.d
ln -s ../init.d/startdaemon K35startdaemon

cd /etc/rc.d/rc1.d
ln -s ../init.d/startdaemon K35startdaemon

Para testar as configurações digitamos os seguintes comandos:

* para start do daemon manualmente

service startdaemon start

* para stop do daemon manualmente

service startdaemon stop

* para restart do daemon manualmente

service startdaemon restart

* para verificar o status do daemon

service startdaemon status

ou

ps -ef | grep startdaemon

OBS.: Para que o start funcione durante do boot que init level do sistema assuma como default 3 ou 5.

cat /etc/inittab | grep initdefault
id:5:initdefault

Filed under: Red Hat Comments Off
12Oct/07Off

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.

Filed under: Red Hat Comments Off
11Oct/07Off

Logical 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:

http://www.tldp.org/HOWTO/LVM-HOWTO/
http://sources.redhat.com/lvm2/
http://www.redhat.com/magazine/009jul05/features/lvm2/

Filed under: Red Hat Comments Off