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: noserver:~#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
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.
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áriostart() {
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 1esac
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 S91startdaemoncd /etc/rc.d/rc5.d
ln -s ../init.d/startdaemon S91startdaemoncd /etc/rc.d/rc0.d
ln -s ../init.d/startdaemon K35startdaemoncd /etc/rc.d/rc6.d
ln -s ../init.d/startdaemon K35startdaemoncd /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
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.
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/