Mostrando entradas con la etiqueta Personalización Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Personalización Linux. Mostrar todas las entradas

viernes, 20 de febrero de 2009

Cómo crear, eliminar y modificar una partición LVM en linux

LVM es una implementación de un administrador de volúmenes lógicos para el kernel Linux, permite una forma sencilla para repartir los espacios de disco y posteriormente redimensionarlos.

Añadir un nuevo volumen:

[root@nexus7]# vgcreate nombre_grupo_volumenes /dev/sda1

Para añadir a un volumen lógico existente un nuevo disco duro, bastaría con ejecutar el siguiente comando "vgextend":

[root@nexus7]# vgextend GrupoDeVolumenes /dev/sdb1

Para eliminar el espacio de un disco físico del volumen lógico. Visualizar el contenido del volumen con "pvdisplay" y eliminarlo con "vgreduce":

[root@nexus7 ]# pvdisplay
File descriptor 4 left open

File descriptor 9 left open

File descriptor 10 left open

File descriptor 11 left open

File descriptor 13 left open

File descriptor 14 left open

File descriptor 15 left open

--- Physical volume ---
PV Name /dev/sda2

VG Name
GrupoDeVolumenes
PV Size 232,69 GB / not usable 4,58 MB
Allocatable yes
PE Size (KByte) 32768
Total
PE 7446
Free PE 1 Allocated
PE 7445
PV UUID x13nkz-9Ztw-2P08-1dNp-yZ3L-T4O6-fRsQjK

[root@nexus7 ]# vgreduce GrupoDeVolumenes /dev/sda2

Para eliminar el volumen lógico del sistema se utiliza el comando "lvremove" de la siguiente forma:

[root@nexus7]# umount /dev/GrupoDeVolumenes/volumen_para_home
[root@nexus7]# lvremove /dev/GrupoDeVolumenes/volumen_para_home
lvremove -- do you really want to remove "/dev/
GrupoDeVolumenes/volumen_para_home"? [y/n]: y
lvremove -- doing automatic backup of volume group "
GrupoDeVolumenes"
lvremove -- logical volume "/dev/
GrupoDeVolumenes/volumen_para_home" successfully removed

Disminuir o aumentar la dimensión del volumen, desde un sistema de archivos ext2 o ext3, se desmonta la unidad y con el comando "e2fsadm" se aplica los cambios deseados. En este caso se reduce el tamaño en 1Gb del volumen "/dev/GrupoDeVolumenes/volumen_para_home".

[root@nexus7]# umount /home
[root@nexus7]# e2fsadm -L -1000M /dev/GrupoDeVolumenes/volumen_para_home
[root@nexus7]#
mount /home
[root@nexus7 ]# pvdisplay
[root@nexus7 ]# mount /home
  • -L -1000M: reduce el tamaño del volumen 1GB, se utiliza tanto el signo "-" como el signo "+" para aumentar o disminuir el tamaño. Para asignar de una forma sencilla la dimensión se usa M - Megas, G - Gigas, T - Teras.
Después de todo, los pasos para crear un volumen serían los siguientes:

[root@nexus7]# pvcreate /dev/sda
pvcreate — physical volume “/dev/sda” successfully created

[root@nexus7]#
vgextend GrupoDeVolumenes /dev/sda
vgextend — INFO: maximum logical volume size is 1023.97 Gigabyte

vgextend — doing automatic backup of volume group “GrupoDeVolumenes″
vgextend — volume group “GrupoDeVolumenes″ successfully extended


[root@nexus7]#
lvcreate -L 400M -n volumen1 GrupoDeVolumenes
lvcreate — doing automatic backup of “GrupoDeVolumenes″

lvcreate — logical volume “/dev/GrupoDeVolumenes/volumen1″ successfully created

[root@nexus7]# mkfs -t ext3 -m 1 -v /dev/GrupoDeVolumenes/volumen1
[root@nexus7]# tune2fs -l /dev/GrupoDeVolumenes/volumen1
[root@nexus7]#
mkdir /mnt/nuevofs
[root@nexus7]#
mount -t ext3 /dev/GrupoDeVolumenes/volumen1 /mnt/nuevofs

martes, 10 de febrero de 2009

Optimización de red TCP / IP en linux

Con los siguientes datos es posible mejorar el rendimiento de las redes TCP / IP de linux. Hay que tener en cuenta que me refiero a las funciones disponibles dentro de la instalación del sistema Linux.

Sólo muestro los parámetros que pueden ser usados para optimizar el protocolo TCP / IP. Todas las sugerencias que hago en esta sección son válidas para todo tipo de equipos, la única diferencia es la cantidad de MB de RAM de la máquina.

La mayoría de los cambios funciona bien con equipos con >= 512 MB de RAM y un mínimo de 256 MB de RAM. Por debajo de esta cantidad de memoria es mejor usar la configuración predeterminada.

Este truco hace menor el tiempo para la conexión TCP / IP, consiguiendo más conexiones. Con lo siguiente se reducirá la cantidad de tiempo que la máquina Linux utilizará para cerrar una conexión.
  • net.ipv4.tcp_window_scaling , TCP/IP normalmente permite ventanas de hasta 65535 bytes. En redes muy rápidas esto podría no ser suficiente. Las opciones de escalado permiten ventanas de hasta casi un gigabyte, lo cual es bueno para productos con gran ancho de banda y mucho retraso.
  • net.ipv4.tcp_keepalive_time, Frecuencia con que TCP envía mensajes keepalive cuando se activa keepalive. Por defecto: 2 horas.
  • net.ipv4.tcp_sack, Usar ACK Selectivo que puede servir para comprobar si se están perdiendo paquetes específicos (por tanto, ayuda a una recuperación rápida).
  • net.ipv4.tcp_timestamps, Los registros de tiempo se usan, entre otras cosas, para protegerse contra números de secuencia que se solapen. Es concebible que un enlace de 1 gigabit reencuentre un número de secuencia previo con un valor fuera de línea, porque fue de una generación previa. El registro de tiempo ayudará a reconocer este "paquete antiguo".
Estos cambios se deben hacer en el siguiente archivo de configuración del sistema:

vim /etc/sysctl.conf

# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0

Recuerda que se debe reiniciar la red

[root@nexus7 /]# /etc/init.d/network restart


Referencias:
http://www.gulic.org/almacen/03_www/

jueves, 29 de enero de 2009

Crear alias en Linux

Con tanto comando, los alias nos hacen la vida más fácil, cada usuario puede tener sus alias personalizados.

Para crearlo se usa el comando (alias):

[nexus7@nexus7 ~]$ alias test="echo Hola Mundo"

y para eliminarlo se utiliza (unalias):

[nexus7@nexus7 ~]$ unalias test

Los alias que hemos creado no son permanentes. Para que los cambios sigan en cada arranque del equipo nos basta con editar el archivo (~/.bashrc) situado en el directorio raíz del usuario.

[nexus7@nexus7 ~]$ cd /home/nexus7
[nexus7@nexus7 ~]$ vim .bashrc

este es el formato del archivo:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi


# User specific aliases and functions


alias nolacie='eject /media/LaCie/'

algunos ejemplos:

alias sshmiequipo1='ssh nexus7@192.168.2.99'
alias vncmiequipo2='vncviewer 192.168.2.99:5'

alias editarAlias='vim .bashrc'

alias grep='grep --color=auto'
alias home='cd /home/nexus7'
alias cls='clear'

alias hora='date "+%nHora: %H:%M:%S%n"'

alias hoy='date ''+%nFecha: %A, %d / %B / %y%n''
'
alias pow='poweroff'


El comando 'df' siempre nos presenta los datos en un formato difícilmente legible, (-h human readable) lo hace más fácil de leer.

alias df='df -h'

También nos permite aumentar la seguridad, el comando (rm) elimina archivos y carpetas de forma irrecuperable, se puede hacer interactivo de la siguiente forma.

alias rm='rm -i'


Después de añadir los alias que necesitemos, para habilitarlos sin necesidad de ejecutarlos en el terminal uno a uno, ejecutamos el siguiente comando.

[nexus7@nexus7 ~]$ bash

Por último si se necesita visualizar los alias configurados, basta con ejecutar (alias).

[nexus7@nexus7 ~]$ alias

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias nolacie='eject /media/LaCie/'

alias sshnexus7='ssh nexus7@192.168.9.58'
alias sshnexus8='ssh nexus8@192.168.9.12'

alias vi='vim'

alias vncnexus7='vncviewer 192.168.9.58:2'

alias vncnexus8='vncviewer 192.168.9.12:2'

alias vncyoli='vncviewer 192.168.9.67'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

jueves, 15 de enero de 2009

Optimizar NFS (Linux Network File System)

Después de instalar nuestra nueva unidad de red e intercambiar algunos archivos, nos planteamos seguro, si podemos acelerar esa tasa de transferencia entre nuestro equipo y la unidad de red. Con estos comandos y con paciencia podemos ajustar los valores rsize y wsize a unos valores óptimos.

El siguiente comando enviará un archivo de 256MB desde el equipo local a la carpeta compartida.

time dd if=/dev/zero of=/mnt/home/ArchivoDePrueba bs=16k count=16384

esto devolverá una salida como la siguiente, en la que se puede ver la tasa de transferencia y el tiempo que ha tardado en el proceso:

16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 85,9604 s,
3,1 MB/s

real
1m25.977s
user 0m0.007s
sys 0m0.360s


O la siguiente:

16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 40,9155 s, 6,6 MB/s

real 0m41.562s
user 0m0.003s
sys 0m0.321s

Hay que repetirlo varias veces con distintas configuraciones de rsize y wsize, los valores deben ser múltiplos de 1024 y no pueden ser mayores que el tamaño del bloque configurado en NFSSVC_MAXBLKSIZE, por supuesto montando y desmontando la unidad para que use los nuevos valores.

También se pueden usar para la misma función dos aplicaciones más complejas, bonnie++ y iOzone.

sábado, 10 de enero de 2009

Configuración de NFS

Anteriormente tenía configurado ssh para el intercambio de archivos entre los equipos de la LAN, la velocidad de transmisión de datos esta entre 3 y 4 MiB/s, es lento. NFS nos puede dar más velocidad a cambio de menos seguridad, aunque tampoco es la panacea, consiguiendo una velocidad de 9 y 10 MiB/s pero como en mi caso, para intercambiar varios gigabites es un alivio.

NFS no esta pensado para compartir archivos como en Samba o usando fish de SSH, la forma de actuar con NFS es montar una de las unidades de red del servidor en nuestro equipo.

En primer lugar y en el servidor NFS, es decir el que contendrá la carpeta que necesitamos compartir, hay que instalar varios paquetes:

yum install nfs-utils portmap

Comprobaremos si portmap y nfs están activos en el sistema, sino los arrancamos:

/etc/init.d/rpcbind status
/etc/init.d/rpcbind start (si esta inactivo)

/etc/init.d/nfs status
/etc/init.d/nfs start (si esta inactivo)

/etc/init.d/nfslock status
/etc/init.d/nfslock start
(si esta inactivo)

Si queremos que el servicio nfs este activo el siguiente arranque debemos ejecutar el siguiente comando:

/sbin/chkconfig nfs on

Configuremos la seguridad para NFS, añadiendo las siguientes lineas:

vim /etc/hosts.deny
portmap:ALL
lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL


/etc/hosts.allow
portmap:192.168.1.0/255.255.255.0
lockd:192.168.1.0/255.255.255.0

mountd:192.168.1.0/255.255.255.0

rquotad:192.168.1.0/255.255.255.0

statd:192.168.1.0/255.255.255.0


Se puede dar permisos por supuesto a una red de internet ajena a nuestra intranet, por ejemplo:

portmap:89.125.4.52

Editamos el archivo /etc/sysconfig/nfs configuramos o añadimos los siguientes parámetros:

LOCKD_TCPPORT=4000
STATD_PORT=4002
LOCKD_UDPPORT=4000
MOUNTD_PORT=4001


Abrir los puertos que anteriormente hemos seleccionado más el 111 y el 2049:

111 tpc/udp (rcp)
4000 tcp/udp
4001 tcp/udp, 4002 tcp/udp
también 2049 tcp/udp (nfs)


Configurar que carpetas vamos a exportar modificando el archivo /etc/exports

/home 192.168.1.39(rw,sync)

Con esto le notificamos al sistema que estamos compartiendo el directorio /home con permisos de lectura-escritura y escritura sincronizada a petición, si quisiéramos que fuera de solo lectura bastaría con substituir (rw) por (ro).

Cada vez que se efectue un cambio en /etc/exports hay que ejecutar el siguiente comando para que los cambios sean visibles:

exportfs -rv

Para que los cambios efectuados hasta el momento hay que reiniciar los servicios:

/etc/init.d/rpcbind restart
/etc/init.d/iptables restart
/etc/init.d/nfs restart
/etc/init.d/nfslock restart

Ahora desde la parte del cliente, vamos a comprobar que carpetas comparte el servidor y posteriormente montar la carpeta deseada. "showmount" nos presenta las carpetas compartidas y la salida seria como esta:

[root@nexus7 nexus7]# showmount -e 192.168.1.18
Export list for 192.168.1.18:

/home 192.168.1.39


Ahora procedemos a montar /home en nuestro sistema cliente, creamos una carpeta en /mnt con el nombre que queramos (mkdir /mnt/HomeNexus7).

mount -t nfs 192.168.1.18:/home /mnt/HomeNexus7/

Para que esta carpeta siga montada en cada arranque debemos añadir una nueva linea a /etc/fstab, por ejemplo:

192.168.1.18:/home /mnt/HomeNexus7 nfs rw 0 0

Podemos añadir "hard,intr", cuando servidor se cuelga el programa que accede a ese archivo también se bloquea, para evitar esto se recomienda poner en la linea de comandos de montaje:

192.168.1.18:/home /mnt/HomeNexus7 nfs rw,hard,intr, 0 0

miércoles, 31 de diciembre de 2008

Personalizar Service Menus en KDE4


Para averiguar la carpeta donde se alojan los archivos .desktop:

kde4-config --path services
/home/nexus6/.kde/share/kde4/services/:/usr/share/kde4/services/

En mi caso están en :
/usr/share/kde4/services/ServiceMenus

Ahora el ejemplo, si quisiéramos que en cualquier archivo en el menú aparezca la opción de poder imprimir o descomprimir con zip, se crearía un archivo como este:

[Desktop Entry]
MimeType=application/*;
X-KDE-ServiceTypes=inode/directory,KonqPopupMenu/Plugin,all/all
Type=Service
Actions=2_COMP_ZIP;2_DESC_ZIP;
X-KDE-Submenu=Funciones compresión
[Desktop Action 2_COMP_ZIP]
Name=Comprimir a ZIP
Icon=ark
Exec=konsole --noclose -e zip -r %u.zip %u
[Desktop Action 2_DESC_ZIP]
Name=Descomprimir ZIP
Icon=ark
Exec=konsole --noclose -e unzip %u %d

De esta forma se pueden personalizar con las funciones que uno necesite como, por ejemplo, esta otra para convertir los archivos de video a formato PSP:

[Desktop Entry]
Encoding=UTF-8
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,video/*
Actions=2PSPVideo;2PSCaptura;
X-KDE-Submenu=PSP Video
[Desktop Action 2PSPVideo]
Name=Convertir a video psp
Icon=dragonplayer
#Exec=konsole --noclose -e ffmpeg -i %u -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 128 M4V00002.MP4
Exec=konsole --noclose -e ffmpeg -y -i %u -bitexact -vcodec xvid -s 320x240 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 64 -f psp -muxvb 768 M4V80113.mp4
[Desktop Action 2PSCaptura]
Name=Generar una captura de video
Icon=dragonplayer
Exec=konsole -e ffmpeg -y -i %u -f singlejpeg -ss 5 -vframes 1 -s 160xx120 -an M4V00002.THM

No entro en si la función ffmpeg genera un video que sea óptimo para verlo en la psp, solo incido en la funcionalidad del menú acción.