jueves, 23 de abril de 2009
Sony Ericsson MD300 Andando en el NetworkManager
[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