lunes, 27 de mayo de 2013

Como verificar el estado de un disco rigido en Linux


Amigos, a continuación les voy a dejar algunos tips para que puedan verificar si su disco rígido tiene algún sector defectuoso en Linux. (How to check hard disk health)


  • Verificar el archivo de log

Verificar el archivo de log, comúnmente /var/log/messages. Si el disco contiene errores, verán lineas del tipo I/O o input/output error.
kernel: end_request: I/O error, dev nbd125, sector 0

  • Existe una utilidad llamada SMART que verifica integridad en discos

smartctl -i /dev/sda1 or sda2 etc...

En Ubuntu, se puede instalar SMART haciendo: 

sudo apt-get install smartmontools


  • Finalmente, el DD. muchisimo ojo con el DD!! porque escribe/lee a muy bajo nivel

# dd if=/dev/sda of=/dev/null bs=512

if: Dispositivo de entrada o de lectura, en nuestro caso, queremos leer todo el disco sda

of: Dispositivo de salida, en nuestro caso, la nada! osea null. Ojo aquí  si pones of=/dev/sda, va a borrar a pisar todo el contenido del disco!

bs: tamaño de bloque, en nuestro ejemplo 512 bytes.

Cualquier duda o consulta, dejar el comentario que tratare de responder tan pronto sea posible.

domingo, 12 de mayo de 2013

How To/Como hacer un backup de una BBDD en Mysql con mylvmbackup on Ubuntu 12.10

mylvmbackup es un script en Perl para realizar rapidos backups de Bases de Datos MySQL.
Este script utiliza LVM snapshot para tomar los backups. Para hacer un backup, mylvmbackup hace una lectura de todas las tablas (las bloquea) y levante todo los caches al disco, crea el snapshot de el volumen que contiene los directorios de datos de MYSQL y finalmente desbloquea las tablas.

No genera ningún inconveniente y esto seguramente te funcionara!

Primero, por supuesto, el sistema operativo debe utilizar LVM como gestor de discos.
Luego, el directorio de MYSQL debe ser /var/lib/mysql

root@server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
                       20G  808M   18G   5% /
tmpfs                 252M     0  252M   0% /lib/init/rw
varrun                252M   56K  251M   1% /var/run
varlock               252M     0  252M   0% /var/lock
udev                  252M  2.6M  249M   2% /dev
tmpfs                 252M     0  252M   0% /dev/shm
/dev/sda1             471M   23M  425M   6% /boot
/dev/mapper/server1-mysql
                      8.9G  170M  8.3G   2% /var/lib/mysql
root@server1:~#

Como puedes ver en este ejemplo, el directorio / y /var/lib/mysql utilizan LVM. El VG (volume group) se llama server1

root@server1:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               server1
  PV Size               29.52 GB / not usable 3.66 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              7557
  Free PE               0
  Allocated PE          7557
  PV UUID               0gCmpE-FGel-9ayg-E2yg-kkEu-B72X-kFvaye

root@server1:~# vgdisplay
  --- Volume group ---
  VG Name               server1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               29.52 GB
  PE Size               4.00 MB
  Total PE              7557
  Alloc PE / Size       7557 / 29.52 GB
  Free  PE / Size       0 / 0
  VG UUID               PH5Hpc-jqeP-BFYs-wWlA-hu03-qwuQ-0cNIu3

root@server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/server1/swap
  VG Name                server1
  LV UUID                RCeLCK-MO5p-xoMq-SwTT-n2NV-GaP6-GaemDp
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                1.00 GB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/server1/root
  VG Name                server1
  LV UUID                5Wen7n-xYmh-MQz1-fKH5-0XXa-1y2t-V3PYbb
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                19.53 GB
  Current LE             5000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

  --- Logical volume ---
  LV Name                /dev/server1/mysql
  VG Name                server1
  LV UUID                wk8yb6-fDl8-4tg3-tneT-1dDe-wWdy-AfGZ5I
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                8.99 GB
  Current LE             2301
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:2

Antes de crear el snapshot, hay que preparar un disco para volcarlo. Para el ejemplo se utilizara /dev/sdb
En el caso de que tengan dudas de como realizar esto, contactarme!!!!

Bueno, vamos a instalar el script
apt-get install mylvmbackup

Puede ejecutar el siguiente comando para leer informacion sobre el script
man mylvmbackup

Ejemplo:
mylvmbackup --user=root --password=yourrootsqlpassword --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar

--user: usuario con privilegios para tomar backup
--password: la constraseña del usuario root (Del MYSQL)
--mycnf: archivo de configuracion
--vgname: nombre del VG que contiene la base de datos
--lvname: nombre del LV con los archivos de datos de MySQL
--backuptype: tipo del backup

root@server1:~# mylvmbackup --user=root --password=yourrootsqlpassword --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar
20120416 19:16:58 Info: Connecting to database...
20120416 19:16:58 Info: Flushing tables with read lock...
20120416 19:16:58 Info: Taking position record...
20120416 19:16:58 Info: Taking snapshot...
File descriptor 3 left open
  Logical volume "mysql_snapshot" created
20120416 19:16:58 Info: Unlocking tables...
20120416 19:16:58 Info: Disconnecting from database...
20120416 19:16:58 Info: Mounting snapshot...
20120416 19:16:59 Info: Copying my.cnf...
20120416 19:16:59 Info: Taking actual backup...
20120416 19:16:59 Info: Creating tar archive /var/cache/mylvmbackup/backup/backup-20120416_191658_mysql.tar.gz
backup/
backup/mydb/
backup/mydb/sys_modules.MYI
backup/mydb/dns_a.frm
backup/mydb/isp_dienste.MYD
backup/mydb/isp_server_ip.frm
backup/mydb/dns_spf.frm
backup/mydb/dns_a.MYI
backup/mydb/isp_fakt_dep.frm
backup/mydb/multidoc_dep.frm
backup/mydb/isp_isp_web_template.MYI
backup/mydb/sys_nodes.MYD
backup/mydb/listtype.MYD
backup/mydb/help_documents.MYD
backup/mydb/help_tickets.MYI
backup/mydb/doctype.frm
backup/mydb/login.MYI
backup/mydb/isp_com.frm
backup/mydb/help_documents.MYI
backup/mydb/isp_dep.MYD
backup/mydb/help_documents.frm
backup/mydb/isp_server.MYD
backup/mydb/isp_fakt_nodes.MYD
backup/mydb/sys_config.MYD
backup/mydb/dns_nodes.MYI
backup/mydb/sys_config.MYI
backup/mydb/isp_monitor.frm
backup/mydb/isp_server_ip.MYI
backup/mydb/isp_isp_datenbank.frm
backup/mydb/dns_secondary.frm
backup/mydb/isp_nodes.MYI
backup/mydb/dns_isp_dns.MYI
backup/mydb/help_nodes.frm
backup/mydb/isp_fakt_nodes.frm
backup/mydb/isp_server.MYI
backup/mydb/isp_isp_domain.frm
backup/mydb/dns_dep.frm
backup/mydb/session.frm
backup/mydb/isp_isp_cron.MYD
backup/mydb/isp_fakt_record.MYI
backup/mydb/isp_monitor.MYI
backup/mydb/isp_fakt_rechnung.MYI
backup/mydb/listtype.MYI
backup/mydb/isp_fakt_rechnung.MYD
backup/mydb/isp_traffic.frm
backup/mydb/isp_fakt_dep.MYI
backup/mydb/user_groups.frm
backup/mydb/isp_fakt_record.frm
backup/mydb/isp_fakt_artikel.MYD
backup/mydb/isp_htaccess.MYD
backup/mydb/sys_nodes.frm
backup/mydb/groups.frm
backup/mydb/login.MYD
backup/mydb/isp_firewall.MYD
backup/mydb/isp_server.frm
backup/mydb/help_tickets.frm
backup/mydb/multidoc_dep.MYD
backup/mydb/dns_nodes.frm
backup/mydb/dns_a.MYD
backup/mydb/sys_config.frm
backup/mydb/dns_isp_dns.frm
backup/mydb/dns_mx.MYI
backup/mydb/isp_isp_web.MYD
backup/mydb/isp_serverstatus.MYI
backup/mydb/isp_serverstatus.MYD
backup/mydb/sys_dep.MYD
backup/mydb/isp_isp_cron.MYI
backup/mydb/session.MYD
backup/mydb/isp_isp_admin.MYD
backup/mydb/dns_ptr.frm
backup/mydb/dns_mx.frm
backup/mydb/isp_isp_domain.MYD
backup/mydb/sys_dep.MYI
backup/mydb/dns_spf.MYD
backup/mydb/user_groups.MYD
backup/mydb/sys_news.frm
backup/mydb/isp_isp_actions.MYI
backup/mydb/doctype.MYD
backup/mydb/multidoc_nodes.frm
backup/mydb/isp_fakt_artikel.frm
backup/mydb/sys_news.MYD
backup/mydb/isp_traffic.MYD
backup/mydb/user_groups.MYI
backup/mydb/sys_news.MYI
backup/mydb/listtype.frm
backup/mydb/del_status.frm
backup/mydb/isp_fakt_nodes.MYI
backup/mydb/isp_isp_kunde.MYD
backup/mydb/isp_dienste.frm
backup/mydb/dns_mx.MYD
backup/mydb/doctype.MYI
backup/mydb/help_tickets.MYD
backup/mydb/dns_secondary.MYI
backup/mydb/dns_ptr.MYD
backup/mydb/isp_isp_reseller.frm
backup/mydb/isp_dienste.MYI
backup/mydb/isp_isp_datenbank.MYD
backup/mydb/isp_isp_actions.MYD
backup/mydb/isp_isp_web.frm
backup/mydb/db.opt
backup/mydb/isp_server_ip.MYD
backup/mydb/multidoc_nodes.MYI
backup/mydb/dns_nodes.MYD
backup/mydb/isp_fakt_rechnung.frm
backup/mydb/isp_isp_reseller.MYI
backup/mydb/isp_nodes.MYD
backup/mydb/isp_htaccess.MYI
backup/mydb/isp_isp_web_template.frm
backup/mydb/isp_isp_domain.MYI
backup/mydb/dns_secondary.MYD
backup/mydb/dns_dep.MYD
backup/mydb/isp_firewall.MYI
backup/mydb/help_nodes.MYI
backup/mydb/isp_isp_admin.frm
backup/mydb/isp_isp_cron.frm
backup/mydb/isp_isp_datenbank.MYI
backup/mydb/isp_traffic_ip.frm
backup/mydb/isp_fakt_dep.MYD
backup/mydb/isp_dep.MYI
backup/mydb/dns_dep.MYI
backup/mydb/isp_isp_reseller.MYD
backup/mydb/dns_isp_dns.MYD
backup/mydb/isp_fakt_artikel.MYI
backup/mydb/multidoc_dep.MYI
backup/mydb/multidoc_nodes.MYD
backup/mydb/del_status.MYD
backup/mydb/groups.MYD
backup/mydb/isp_isp_web_template.MYD
backup/mydb/isp_htaccess.frm
backup/mydb/isp_dep.frm
backup/mydb/isp_isp_web.MYI
backup/mydb/isp_isp_user.frm
backup/mydb/session.MYI
backup/mydb/isp_isp_admin.MYI
backup/mydb/isp_isp_kunde.MYI
backup/mydb/isp_isp_user.MYI
backup/mydb/isp_fakt_record.MYD
backup/mydb/isp_nodes.frm
backup/mydb/groups.MYI
backup/mydb/del_status.MYI
backup/mydb/dns_spf.MYI
backup/mydb/isp_com.MYD
backup/mydb/isp_isp_user.MYD
backup/mydb/dns_cname.frm
backup/mydb/isp_com.MYI
backup/mydb/dns_cname.MYD
backup/mydb/sys_modules.MYD
backup/mydb/isp_traffic_ip.MYI
backup/mydb/help_nodes.MYD
backup/mydb/sys_user.frm
backup/mydb/isp_traffic_ip.MYD
backup/mydb/sys_user.MYD
backup/mydb/sys_modules.frm
backup/mydb/isp_serverstatus.frm
backup/mydb/sys_dep.frm
backup/mydb/isp_firewall.frm
backup/mydb/isp_monitor.MYD
backup/mydb/isp_isp_kunde.frm
backup/mydb/dns_cname.MYI
backup/mydb/isp_isp_actions.frm
backup/mydb/sys_user.MYI
backup/mydb/sys_nodes.MYI
backup/mydb/dns_ptr.MYI
backup/mydb/isp_traffic.MYI
backup/mydb/login.frm
backup/ib_logfile0
backup/mysql_upgrade_info
backup/debian-5.0.flag
backup/mysql/
backup/mysql/host.MYD
backup/mysql/procs_priv.MYD
backup/mysql/time_zone_transition.MYD
backup/mysql/proc.MYI
backup/mysql/time_zone_name.frm
backup/mysql/time_zone_name.MYD
backup/mysql/help_relation.MYI
backup/mysql/user.MYD
backup/mysql/help_category.MYI
backup/mysql/time_zone.frm
backup/mysql/func.MYD
backup/mysql/help_category.MYD
backup/mysql/time_zone_transition.frm
backup/mysql/time_zone_name.MYI
backup/mysql/help_category.frm
backup/mysql/time_zone_leap_second.frm
backup/mysql/time_zone_transition.MYI
backup/mysql/help_relation.MYD
backup/mysql/host.frm
backup/mysql/db.frm
backup/mysql/db.MYI
backup/mysql/columns_priv.frm
backup/mysql/time_zone.MYI
backup/mysql/time_zone_leap_second.MYD
backup/mysql/func.frm
backup/mysql/columns_priv.MYI
backup/mysql/help_topic.MYD
backup/mysql/host.MYI
backup/mysql/proc.frm
backup/mysql/user.MYI
backup/mysql/help_topic.MYI
backup/mysql/help_relation.frm
backup/mysql/tables_priv.frm
backup/mysql/help_keyword.frm
backup/mysql/user.frm
backup/mysql/time_zone_transition_type.MYI
backup/mysql/procs_priv.frm
backup/mysql/help_topic.frm
backup/mysql/procs_priv.MYI
backup/mysql/time_zone_transition_type.MYD
backup/mysql/func.MYI
backup/mysql/proc.MYD
backup/mysql/tables_priv.MYD
backup/mysql/help_keyword.MYI
backup/mysql/help_keyword.MYD
backup/mysql/time_zone_leap_second.MYI
backup/mysql/tables_priv.MYI
backup/mysql/db.MYD
backup/mysql/time_zone_transition_type.frm
backup/mysql/time_zone.MYD
backup/mysql/columns_priv.MYD
backup/lost+found/
backup/ibdata1
backup/ib_logfile1
backup-pos/backup-20120416_191658_mysql.pos
backup-pos/backup-20120416_191658_my.cnf
20120416 19:17:00 Info: DONE
20120416 19:17:00 Info: Cleaning up...
20120416 19:17:00 Info: LVM Usage stats:
20120416 19:17:00 Info:   LV             VG      Attr   LSize Origin Snap%  Move Log Copy%  Convert
20120416 19:17:00 Info:   mysql_snapshot server1 swi-a- 5.00G mysql    0.00
  Logical volume "mysql_snapshot" successfully removed

ir a la fuente