jueves, 23 de abril de 2009

Sony Ericsson MD300 Andando en el NetworkManager

Sinceramente, lo encontre por ahi, no puedo tomar credito. Hay que bajar el paquete pyserial y crear dos archivos con los siguientes contenidos:

[ncorrare@corrare ~]$ cat /etc/udev/rules.d/50-md300.rules
ACTION!="add", GOTO="3G_End"
BUS=="usb", SYSFS{idProduct}=="d0cf", SYSFS{idVendor}=="0fce", NAME="modem", PROGRAM="/bin/sh -c 'echo 3 > /sys/%p/device/bConfigurationValue'", RUN+="/usr/local/bin/md300-ethernet"
LABEL="3G_End"

[ncorrare@corrare ~]$ cat /usr/local/bin/md300-ethernet
#! /usr/bin/python
import time;
time.sleep(5);
import serial;
s=serial.Serial("/dev/ttyACM0");
s.write("AT+CFUN=6\r");
time.sleep(10);
s.write("AT*ENAP=1,1\r")

(A este ultimo permisos de ejecucion por favor!!)
Nota:
s.write("AT+CFUN=6\r"); ES PARA SOLO 3G
s.write("AT+CFUN=5\r"); ES PARA SOLO GPRS
s.write("AT+CFUN=1\r"); AUTOMATICO

miércoles, 7 de enero de 2009

Guia rapida de LVM (o LVM for dummies)

Crear un volumen lógico



Para crear un volumen lógico primero hay que marcar las particiones o disco o las luns como PV's o Physical Volumes de LVM, para eso se debe ejecutar el comando



pvcreate /dev/sdX

o bien

pvcreate /dev/emcpowerXX

dependiendo del tipo de Storage.







En el caso de que usemos algun software de Multipathing, hay que configurar filtros en el LVM para que cuando arranque el sistema y se descubran las luns, la informacion de I/O vaya por el dispositivo de Multipath/Powerpath/SDD y no a un dispositivo de bloque normal. Para esto, en el archivo /etc/lvm/lvm.conf debemos configurar el parametro:

# By default we accept every block device:

filter = [ "a/.*/" ]

o en versiones mas recientes de LVM

# If several entries in the scanned directories correspond to the

# same block device and the tools need to display a name for device,

# all the pathnames are matched against each item in the following

# list of regular expressions in turn and the first match is used.

preferred_names = [ ]


# preferred_names = [ "^/dev/mpath/", "^/dev/[hs]d" ]


Para mas información visite: http://kbase.redhat.com/faq/docs/DOC-2479




Una vez que tenemos nuestros PV's creados, los PE's (o Physical Extents) deben ser agrupados en un Volume Group (o VG), de la siguiente manera


vgcreate VolumeGroupName /dev/sdX /dev/sdY

Una vez hecho esto la salida del comando vgdisplay sera similar a la siguiente


[root@narnia ~]# vgdisplay

--- Volume group ---

VG Name VolGroup00

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 3

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 2

Open LV 2

Max PV 0

Cur PV 1

Act PV 1

VG Size 66.19 GB

PE Size 32.00 MB

Total PE 2118

Alloc PE / Size 2117 / 66.16 GB

Free PE / Size 1 / 32.00 MB

VG UUID LOvCPi-6OG2-Tuhc-Sa9a-2f6M-mvGC-zA9m4h



Ya teniendo nuestro VG activo, podemos crear LV's (Logical Volumes) dentro de la siguiente manera:


lvcreate -L TAMAÑO[G|M] -n LogicalVolumeName VolumeGroupName



La cosa no termina ahi, otras opciones utiles son:


-s: Para hacer un snapshot de un volumen

-m: Para mirrorear el LV

-I: Para el tamaño del stripe



La salida del comando lvdisplay deberia ser similar a la siguiente:


[root@corrare ~]# lvdisplay

--- Logical volume ---

LV Name /dev/VolGroup00/LogVol00

VG Name VolGroup00

LV UUID 9jO3B0-9yEi-Cv4g-gu7Z-hmZV-lIxL-TH9vHU

LV Write Access read/write

LV Status available

# open 1

LV Size 64.22 GB

Current LE 2055

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:0

--- Logical volume ---

LV Name /dev/VolGroup00/LogVol01

VG Name VolGroup00

LV UUID K5Rc5W-1ILg-1WoD-iDnv-fM1y-Uvnl-bSZjyC

LV Write Access read/write

LV Status available

# open 1

LV Size 1.94 GB

Current LE 62

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:1


Para que este Logical Volume sea utilizable, basta con darle un filesystem y montarlo.


Expandir un volumen lógico

Antes de expandir un volumen lógico, debemos verificar, obviamente, que haya espacio en el VG. El comando vgdisplay nos muestra esto:

[...]

VG Size 66.19 GB

PE Size 32.00 MB

Total PE 2118

Alloc PE / Size 2117 / 66.16 GB

Free PE / Size 1 / 32.00 MB

[...]

En un caso como este, en que no hay espacio disponible, tenemos que expandir el VG, de la siguiente manera

vgextend VolumeGroupName /dev/sdX

Una vez que ya hay espacio disponible en el VG, debemos extender el LV, y luego el filesystem encima (todo esto se puede realizar en caliente).

lvextend -L +TAMAÑO[G|M] /dev/VolumeGroupName/LogicalVolumeName

resize2fs /dev/VolumeGroupName/LogicalVolumeName

Migrar Physical Extents

En caso de que un disco falle o que simplemente necesitemos agregar espacio devolviendo luns viejas, podemos migrar en caliente la informacion de un PV a otro. Para esto debemos agregar la nueva lun al Volume Group

vgextend VolumeGroupName /dev/sdX

Migrar la informacion

pvmove /dev/sdOLD /dev/sdNEW

y luego simplemente quitar el PV en desuso


vgreduce VolumeGroupName /dev/sdX