{"id":631,"date":"2011-12-21T01:23:22","date_gmt":"2011-12-21T07:23:22","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=631"},"modified":"2011-12-21T01:44:33","modified_gmt":"2011-12-21T07:44:33","slug":"logical-volume-manager-o-lvm-en-gnulinux","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=631","title":{"rendered":"Logical Volume Manager o LVM en GNU\/Linux"},"content":{"rendered":"<p>LVM en GNU\/Linux o simplemente vol\u00famenes son una opci\u00f3n interesante a la hora de administrar servidores de almacenamiento, sin embargo tambi\u00e9n pueden ser mal usados especialmente por novatos en el sistema operativo que no ponen en balanza el prop\u00f3sito del servidor y no entienden el costo beneficio de su uso.<\/p>\n<p>Lo primero que hay que sabe es que un LVM se comporta como un arreglo de discos RAID-0 y por lo tanto aunque puede hacerse un arreglo de discos no soportan un efectivo m\u00e9todo de tolerancia a fallos, si uno de los discos que conforman el grupo de vol\u00famenes falla, entonces falla todo, por lo que los vol\u00famenes deben ser usados sobre controladoras f\u00edsicas de arreglos, como RAID 1 o RAID 5<\/p>\n<p>Los vol\u00famenes son sistemas l\u00f3gicos, no f\u00edsicos son una capa de abstracci\u00f3n de los discos duros y como toda capa de abstracci\u00f3n esta siempre ser\u00e1 mas lenta que la capa mas baja y es aqu\u00ed donde inicia la decisi\u00f3n de usar un LVM o una partici\u00f3n.<\/p>\n<p>PROS de los LVM<\/p>\n<p>Son de almacenamiento din\u00e1mico, si no sabes como particionar en espacios correctos tu servidor te salvaran el cuello pues , puedes \u201creparticionar\u201d o lo que seria igual a cambiar los tama\u00f1os de partici\u00f3n din\u00e1micamente y en caliente, una partici\u00f3n por otro lado de forma nativa no puede crecer o hacermese mas peque\u00f1a requieres de programas como el Partition Magic en Windows para hacerlo.<\/p>\n<p>Contras de los LVM<\/p>\n<p>Los LVM son una capa sobre los discos duros, son m\u00e1s lentos que una partici\u00f3n y si es un servidor peque\u00f1o con un solo disco duro no tiene sentido usarlo, ya que mermaras el rendimiento para lee o escribir en el disco, la fragmentaci\u00f3n de las particiones, ya es malo que un archivo se fragmente, pero todo un sistema de archivo fragmentado eso es terrible.<\/p>\n<p>Un administrador de servidores o un usuario experto en Linux no usara LVM en servidores peque\u00f1os, mas si ya conoce el prop\u00f3sito de este y sabe que tama\u00f1os de particiones usara y sabe que ser\u00e1n suficientes, por otro lado los novatos que no saben c\u00f3mo tomar esas decisiones usaran LVM aunque solo sea un disco duro con tal de poder reparticionar en vivo aunque le cueste rendimiento de acceso a la informaci\u00f3n, peor tal vez ni sepa para que sirve un volumen o lo use como opci\u00f3n default al instalar y mucho menos sepa que eso le mermara la velocidad de acceso a su disco duro.<\/p>\n<p>Ahora no digo con eso que nunca hay que usar LVM, pero al menos en servidores peque\u00f1os no tiene sentido, cuando los costos son mas que los beneficios simplemente no debe implementarse, pero hay casos en los que los beneficios superan al costo como cl\u00fasteres de almacenamiento, la cosa cambia radicalmente, los vol\u00famenes o LVM pueden hacer magia en casos asi, pero son casos muy especializados fuera de eso un LVM tiene que pensarse antes de ser implementado.<\/p>\n<p>Una explicaci\u00f3n r\u00e1pida de que es un LVM<\/p>\n<p>Un LVM toma un disco (no tiene sentido en un solo disco) o discos y todos ellos los unifica como si fuera un arreglo RAID-0. Sobre todos los discos se crea un sistema de archivos del LVM que se llama grupo de volumenes, el cual se comporta como una partici\u00f3n extendida est\u00e1ndar, la cual contendr\u00e1 los vol\u00famenes l\u00f3gicos o lo que equivale a particiones l\u00f3gicas dentro de la partici\u00f3n extendida y hasta ah\u00ed termina la similitud, por que las particiones l\u00f3gicas finalmente son r\u00edgidas, no cambian sus tama\u00f1os si no es con software adicional y es algo para lo que no fueron dise\u00f1adas.<br \/>\n Los vol\u00famenes l\u00f3gicos se mueven dentro de grupo de vol\u00famenes l\u00f3gicos como si fueran archivos, por eso pueden crecer o encogerse incluso fragmentarse, nunca sabes en que disco duro estar\u00e1 un pedazo del volumen ni en cuantos fragmentos puede estar, los vol\u00famenes l\u00f3gicos son los que contienen los sistemas de archivos, dentro de un volumen l\u00f3gico puede existir un EXT2, EXT3, EXT4 , NTFS, JFS en fin cualquier sistema de archivo, el cual no sabe que est\u00e1 en un volumen l\u00f3gico por lo que para el sistema operativo esto es transparente y solo si el sistema de archivo nativamente tiene la capacidad de crecer o empeque\u00f1ecer podr\u00e1 sacarle jugo al volumen que puede crecer o empeque\u00f1ecer a voluntad.<\/p>\n<p>El uso que un novato le dar\u00eda seria calcular mal el espacio de SWAP , el espacio de \/usr o \/tmp, las particiones al ser r\u00edgidas no le permitir\u00edan arreglar su error sin reparticionar o agregar un disco duro adicional para parchar el mal calculo, un LVM por otro lado podria hacer mas peque\u00f1o al \/tmp y el espacio ganado de \/tmp se le puede asignar a \/usr<\/p>\n<p>Todos estos vol\u00famenes son controlados por software por lo que al escribir en ellos, al ser abstra\u00eddos del disco duro f\u00edsico y que el volumen puede estar fragmentado en muchos pedazos en diferentes discos duros, cuando escribes un archivo, los vol\u00famenes deben encontrar a su tiempo donde escribir la informaci\u00f3n f\u00edsicamente en los discos y lo mismo al recuperarla.<\/p>\n<p>Como ya imaginas, si uno de los discos falla y ese disco conten\u00eda un fragmento de tu volumen entonces ya est\u00e1s en un grave problema, por lo que adem\u00e1s los vol\u00famenes siempre deben usarse sobre soluciones de tolerancia a fallos como RAID \u2013 1 o RAID \u2013 5 lo ideal es que sea arreglos f\u00edsicos con controladoras en el servidor, aunque GNU\/Linux puede por software crear arreglos de discos RAID 1 y 5, ya estamos agregando otra capa de abstracci\u00f3n mas, as\u00ed que el acceso a la informaci\u00f3n puede volverse realmente lenta si se hace todo por software cuando el sistema operativo tiene demasiadas operaciones de lectura y escritura como tener maquinas virtuales, archivos compartidos en red, cache de proxy como el squid, simplemente es mala idea tener un volumen sobre un raid por software, no lo hagas.<\/p>\n<p>Ahora si realmente justificas usar un volumen que es lo que debes hacer.<\/p>\n<p>Debes usar el disco duro completo para crear los vol\u00famenes, los mas novatos crean los vol\u00famenes por las partciones , lo cual merma aun mas la velocidad de acceso a la informaci\u00f3n si una partici\u00f3n del disco es est\u00e1ndar y otra pertenece a un volumen la estandart se convierte un verdadero lastre para el volumen, debes usar el total del disco duro sin particionar para los vol\u00famenes, la mayor\u00eda no lo hace por que no sabe como limpiar en el disco la tabla de registro maestro o MBR que esta en los primeros 512 bytes del disco duro y para eliminarla es suficiente con usar el comando<\/p>\n<p>dd if=\/dev\/zero of=\/dev\/discoduro count=1 bs=512<\/p>\n<p>como crear sistema de volumenes basico con comandos.<\/p>\n<p>Para realizar esto tenemos 2 discos duros<\/p>\n<p>\/dev\/sdb y \/dev\/sdc<\/p>\n<p>Paso 1 borrar la informaci\u00f3n del MBR y con eso se destruyen todo los rastros de particiones previas.<br \/>\ndd if=\/dev\/zero of=\/dev\/sdb count=1 bs=512<br \/>\ndd if=\/dev\/zero of=\/dev\/sdc count=1 bs=512<\/p>\n<p>Paso 2 se inicializan los discos duros, el comando puede ser individual para cada disco o con el mismo inicializar todos los discos disponibles<\/p>\n<p>pvcreate \/dev\/sdb \/dev\/sdc<\/p>\n<p>paso 3 creando el sistema de archivo para los vol\u00famenes y extendi\u00e9ndolo sobre el disco o los discos duros que lo soportaran, a este paso se le llama crear grupo de vol\u00famenes. Cuando el sistema de archivos de volumen o grupo de vol\u00famenes se crea sobre m\u00e1s de un disco duro se comporta como un RAID \u2013 0, el sistema de archivos tendr\u00e1 la suma total de los espacios de los discos duros que se agrupen para el grupo de vol\u00famenes y como todos sabemos un RAID \u2013 0 no tiene tolerancia a fallos, si un disco del grupo falla, falla todo.<\/p>\n<p>vgcreate \/dev\/sdb \/dev\/sdc grupodevolumenacrear<\/p>\n<p>en el ejemplo usare grupodediscos<\/p>\n<p>vgcreate \/dev\/sdb \/dev\/sdc grupodediscos<\/p>\n<p>Paso 3 crear los vol\u00famenes que contendr\u00e1n los sistemas de archive para el sistema operativo<\/p>\n<p>lvcreate \u2013L #GB \u2013n nombredelvolumen grupodelvolumenaasignar<\/p>\n<p>en el ejemplo el volumen se llamara vol1 y # es la cantidad de Gigabytes que se le asignaran al volumen como espacio inicial aunque este puede cambiar en el futuro<\/p>\n<p>lvcreate \u2013L 3GB \u2013n vol1 grupodediscos<\/p>\n<p>paso 4 ya con el volumen \u201cvol1\u201d se le dara formato a \u201cvol1\u201d para este ejemplo usare ext3, los vol\u00famenes se crean dentro de \/dev\/ seguido del nombre de grupo de vol\u00famenes y seguido finalmente por el nombre del volumen creado en este caso la ruta quedar\u00eda \/dev\/grupodediscos\/vol1<br \/>\nmkfs.ext3 \/dev\/grupodediscos\/vol1<\/p>\n<p>Paso 5 usar el volumen, ya se puede montar, desmontar como si el volumen fuera una partici\u00f3n del sistema operativo<\/p>\n<p>inicialmente creamos un volumen de 3GB, si despu\u00e9s creamos un volumen de 2GB este se crea junto al volumen inicial, si le incrementamos el espacio de almacenamiento a vol1, no tendr\u00e1 espacio consecutivo para crecer, as\u00ed que tendr\u00e1 que rodear al siguiente volumen para crecer, con esto causamos una fragmentaci\u00f3n de volumen, al ser una capa de abstracci\u00f3n no le importa al sistema operativo, pero cuando esto llega a t\u00e9rminos de acceso a nivel f\u00edsico obviamente sabemos que al fragmentarse tardara mas en escribir o recuperar informaci\u00f3n.<\/p>\n<p>En el siguiente video se deja el ejemplo demostrativo de c\u00f3mo crear un volumen b\u00e1sico y se hacen movimientos de incremento y decremento de los vol\u00famenes<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/7dNv20r7pxE\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>LVM en GNU\/Linux o simplemente vol\u00famenes son una opci\u00f3n interesante a la hora de administrar servidores de almacenamiento, sin embargo tambi\u00e9n pueden ser mal usados especialmente por novatos en el sistema operativo que no ponen en balanza el prop\u00f3sito del servidor y no entienden el costo beneficio de su uso. Lo primero que hay que&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-631","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=631"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/631\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}