martes, 16 de abril de 2024

martes, 28 de diciembre de 2021

LVM LINUX

Subo el siguiente manual que tanto me ha servido, sobre todo para explicar a aquellos que se inician en este tipo de administración. Sin embargo tambien le va a permitir comprender como trabaja el sistema LVM en Linux. Mi recomendación, instale una maquina virtual (casera, tipo Virtual Box) instalese un Centos y siga las pautas dadas. Este procedimiento aplica igual para entornos grandes, al finalizar la actividad tendra competencia para trabajar con LVM.   


Manejo de LVM

 

Se realiza el procedimiento con una máquina virtual VirtualBox, SO Fedora 32.

 

Concepto

 

LVM (Logical Volume Manager) es un gestor de volúmenes lógicos para el núcleo Linux, desde el cual se podrá hacer gestión del almacenamiento de manera eficiente, facilitando uso de los discos duros y administración de espacio.

 

Acrónimos clave que tendrán atención en el transcurso del documento:

 

PV = Physical Volume

VG = Volume Group

LV = Logical Volume




Hard Drives: Comúnmente un equipo de computo cuenta con discos mecánicos o flash para el almacenamiento de si respectivo sistema operativo y datos, particularmente en Linux cuando se agregan discos físicos en físico, el sistema los reconoce bajo nomenclaturas propias del sistema de archivos de Unix (/dev/sda, /dev/sdb, etc…) Esta vendría siendo la primera de discos a nivel maquina y sistema operativo.

Partitions: Son las divisiones presentes en unidades físicas es en unidades fisicas en unidades de almacenamientos de datos, en este caso en los discos duros. En el caso de Linux se podrá ver que el disco /dev/sda, puede tener dos particiones: /dev/sda1, /dev/sda2. 


LVM

LVM por su cuenta maneja varias capas internas, descritas a continuación: 

Physical Volumes (PV): Primera capa de LVM en la que se puede designar un disco o una partición como un volumen fisico dentro de LVM.

Volume Group (VG): Es la unidad central de la arquitectura LVM. Es lo que se crea tras combinar volúmenes físicos, creando una sola estructura de almacenamiento y con la que podremos proveer unidades de disco a modo de volúmenes lógicos. 





 

Logical Volume (LV): Pueden ser sustraídos de un VG y son funcionalmente el equivalente a particiones de un disco físico, pero con muchas más flexibilidades.  


Laboratorio

 

Vamos a hacer un laboratorio!


Identificación de Requerimientos

 

Aumentar capacidad de un VG en Fedora 33. 


Se ejecutan comandos para validación. Se identifican los siguientes atributos de disco:

-   Una estructura de archivos, indicando los respectivos filesystems con su respectivo punto de montura:




        Un disco de 10GB con dos particiones, /dev/sda1, /dev/sda2 respectivamente. 



-        -        Se hace un escaneo de lvm, no se encuentran volúmenes físicos.



 -          Se hace un escaneo de lvm, no se encuentran volúmenes físicos.



-        Para el caso practico de este laboratorio, se procederá con añadir dos discos de 10GB cada uno por medio de virtual box, por lo que al finalizar el proceso se observa el siguiente resultado:




Para este caso ya se observan dos discos en físico instalados (/dev/sdb, /dev/sdc).

 

-        También se pueden observar los discos con el comando lsblk, en donde se observa que sda tiene dos particiones asignadas, mientras que sdb y sdc no tienen ninguna al ser nuevos. 





FORMATO DE DISCOS FISICOS

 

-          Se procede a dar formato a los discos:





Se procede a dar formato a /dev/sdb con fdisk, teniendo en cuenta los siguientes comandos básicos:

 

·         m – print help

·         p – print the partition table

·         n – create a new partition

·         d – delete a partition

·         q – quit without saving changes

·         – write the new partition table and exit

 

Para el presente ejemplo, se crea disco, se escogen opciones por defecto, se guardan cambios y se cierra.





Al final se observan los cambios realizados:




Se realiza el formateo sobre la partición con mkfs:






GESTION VOLUMENS POR LVM

 

CREACION PV

 

Se procede a crear volumen físico dentro de lvm:

Se valida primero PVs, VGs, VLs y se encuentran los dos discos nuevos, pero no se encuentran particiones físicas.



 



Se procede a crear con pvcreate el primer volumen fisico y se valida el nuevo volumen:




CREACION VG


Se procederá a crear (vgcreate) el VG con dos PVs, /dev/sdb1 y /dev/sdc1 respectivamente:

Comando: vgcreate “nombre vg” “PVs a agregar”




Con el comando vgdisplay se procede (“vgdisplay vg1” para especificar el VG) a revisar el estado del VG. En este caso se tiene un VG de 20GB como resultado de unir ambos PVs.


 


Si se tuvieran mas VG, se pueden escanear con vgscan:





EXPANCIÓN VG


Ahora se procede a añadir un nuevo volumen físico (PV) al VG.

Comando: vgextend “nombre vg” “pv a añadir”.




 


Y se procede a revisar estado del VG, se observa un aumento de 10GB.



CREACION LV (LOGICAL VOLUME)

 

Se procede a escanear los volúmenes lógicos disponibles:

Para crear un LV.

Lvcreate = Comando para crear el volumen

n = pone el nombre al nuevo LV

L = indica el tamaño de la nueva partición

Vgx = el nombre del VG del que se creara el VL.




 


CREACION LV (LOGICAL VOLUME)


 Se procede a escanear los volúmenes lógicos disponibles:

Para crear un LV.

Lvcreate = Comando para crear el volumen

n = pone el nombre al nuevo LV

L = indica el tamaño de la nueva partición

Vgx = el nombre del VG del que se creara el VL. 





Se procede a verificar el LV creado con el comando “lvdisplay”.







 También con “fdisk -l” ya se ve reflejado el disco:

 




Una vez creado se procede a formatear el disco para montarlo en el SO. Se puede formatear directo con mkfs sin hacerlo por el fdisk. 





Se procede a aumentar tamaño de partición:

Lvextend = comando

-L = tamaño

/dev/etc.. = LV





Por último, el cambio no se vio reflejado en el df -h, cambio en el lvdisplay, pero no a nivel de SO. Fue necesario ejecutar el comando resize2fs y nombre del disco, posteriormente se vuelve a validar con df -h y se obtiene el resultado esperado. 






Por último, se hará un lvextend al 100% que se encuentre libre dentro del VG.

 

Se procede a extender disco, a hacer un resize y se valida nuevamente un cambio efectivo a 30GB.



 




COMANDOS UTILES

https://christitus.com/lvm-guide/




PRECAUCIONES

 

-          Se debe tener precaución con la información ocupada en los discos. Si se tiene un disco físico o partición fuera del LVM con data, esta se borrará al momento de convertir esta partición en PV. 


 










martes, 19 de septiembre de 2017

Manipulación de patrones Linux





El presente artículo se da porque en el tiempo que llevo trabajando en TI he dado con un par de entrevistas de trabajo que han preguntado exactamente esto… Como hago yo para encontrar o filtrar entre tanto fichero o carpeta, los elementos que pertenezcan a un determinado día o que comiencen con determinado número o determinada letra dentro de la terminal Linux?

Esta solo pretende ser una guía práctica que busca puntualmente este propósito, ¿Cómo realizar estos filtrados entre bastantes y determinados archivos?

En primer lugar la manipulación se puede dar con operaciones como copiar (cp), mover (mv), eliminar (rm), listar archivos (ls), etc… Para este caso práctico me limitare a hacer estos ejercicios listando (ls). 


Entonces y en primer lugar, tenemos el listado para hacer la manipulación de patrones, como ejemplo he escogido la carpeta de configuraciones “etc”, esto porque tiene bastantes elementos con los cuales se podrá realizar el ejercicio (sobra decir que este proceso se puede realizar desde cualquier punto del sistema de ficheros).




Ahora las opciones que tenemos para hacer los filtrados.



EJEMPLOS PRACTICOS


1.       Punto (*.) y extensión de formato (*.txt, *.biz, *.conf, *.xls, etc, etc, etc…). Entre el listado dispuesto en la imagen, se desea filtrar todo lo que tenga extensión “.conf”. El carácter (*) significa que nos traerá cualquier cadena que pueda ser (esto incluso se aplica en Windows cuando se busca un archivo), lo que quiere decir que nos traerá cualquier cosa que tenga esa extensión que deseamos filtrar. Ejemplo práctico:



Si deseáramos eliminar todos estos archivos discriminando únicamente la extensión, su forma seria (rm –rf *.conf), obviamente es un ejemplo, estos archivos son necesarios para el funcionamiento del sistema.
1.       Si dentro del gran listado inicial, queremos traer los archivos que tengan dentro de su nombre las letras “gal”, como “legal”, tendríamos que poner las letras de búsquedas entre asteriscos, como en el siguiente ejemplo:



Dentro de todos los archivos en la carpeta “/etc” nos trajo únicamente la palabra “legal”.
¿Para qué sirve esto?
Imagínese en una empresa que genera automáticamente archivos con registros diarios en uno de sus servidores UNIX en su centro de cómputo. Y le piden a usted que encuentre todos los archivos que se generaron el 20 de febrero del 2013 (ejemplo) y se encuentra usted perdido entre miles o hasta millones de ficheros. Aplicando este filtro podría ganar una aproximación, esto dependerá obviamente en la forma que se genera el nombre de dichos archivos en el sistema.

1.       Ahora se requieren encontrar archivos con cadenas de texto inconclusas, en las que por ejemplo se requiera filtrar cadenas de caracteres con uno de estos caracteres faltantes al principio, medio, final o cualquier posición. Este filtro se logra con el comodín “?”, el cual podría remplazar cualquier carácter dentro de la cadena. La mejor forma de explicarlo es con un sencillo ejemplo:


En este ejemplo se hace prueba con un comodín, luego con dos, generando los mismos resultados. De momento no he tenido un caso práctico de uso para este tipo de filtrado.


Ahora tendremos que realizar un filtrado por patrón. Es decir, que todos los archivos cuya cadena de caracteres comience con “up” deberán ser filtrados y mostrados con el procedimiento. Esto se logra con el paréntesis cuadrado y asterisco “[]*”. Ejemplo: Dada una carpeta de repositorios de imágenes de equipos de cómputo, se deberá buscar solo aquellas imágenes que sean para los equipos de la marca HP. 


Filtrando:



Si por ejemplo queremos ver las imágenes para los equipos Compaq:



Y si por ejemplo queremos filtrar todas las imágenes de equipos, menos que de las imágenes que sean para los equipos HP:



En este caso, la sintaxis del filtro indica que, mostrar filtro de todas las imágenes, menos de las imágenes que comiencen con HP, por medio del símbolo “!”, el cual denota un diferenciador al resto de los demás archivos o carpetas.

Estos procesos, información y conocimiento no son nuevos y es la forma en la que se ha venido trabajando siempre, en especial en lugares que manejan grandes cantidades datos sobre servidores o sistemas operativos que tengan como base UNIX, aunque perfectamente se puede practicar sobre Linux. Esto como tal fue una práctica, se le recomienda al lector indagar más en el tema y sobre todo practicar.
Referencias:
Lopez Sanches, M.J & Belle, S., & Auli, F. (2008). Sistema operativo GNU/Linux básico, ES: Universitat Oberta de Catalunya, Recuperado de http://hdl.handle.net/10609/189











lunes, 25 de enero de 2016

PS TOOLS Y EJEMPLOS PRÁCTICOS PARA ENTORNO DE EMPRESA



PS TOOLS Y EJEMPLOS PRÁCTICOS PARA ENTORNO DE EMPRESA

PSTools es una herramienta a nivel de Windows que en lo personal me ha evitado el trabajo de tener que desplazarme hacia algún sitio. Desde ejecutar un programa en segundo plano, revisar procesos, revisar puertos abiertos, etc... Es una herramienta que si se sabe utilizar puede ofrecer muchas posibilidades y optimizar nuestro trabajo, por ende nuestra productividad. Para no copiar y pegar, la referencia y características las pueden encontrar en la pagina de PSTOOLS, a su vez que podrán hacer la descarga para poder comenzar a utilizar la herramienta (claro, si no es que ya tienen procesos implementados). Esta sera una guía pensada en mostrar resultados de un "mini-laboratorio".

Lo primero a tener en cuenta es que la descarga se encuentra en una pagina de technet, por lo que se recomienda siempre descargar de aquí y así evitar problemas por medio de un tercero que tenga dobles intenciones. 


Una vez descargado, el resultado sera una carpeta comprimida con un peso de 1.60 MB en formato rar. Esta carpeta la podemos descomprimir en cualquier carpeta, pero recomendaría que se realizara sobre la raíz (directamente sobre C:/).

Una ves descomprimida, abrimos la consola de comandos (para dudas sobre el manejo de cmd, consultar uno de los tantos manuales en la WEB, como por ejemplo  http://es.scribd.com/doc/2512784/Manual-de-MS-DOS) e ingresamos a la carpeta de PSTOOLS, 



Una vez dentro de la carpeta de PSTOOLS, por medio del comando de visualización (dir), se pueden ver los programas de los que dispone PSTOOLS. Para este caso particular se utilizara el comando psExec. Este comando nos permitirá ejecutar determinados programas de por remoto, desde y cuando tengamos un usuario con su respectivo password, el hostname de la maquina objetivo y en algunos casos dependiendo de lo que se pretenda ejecutar, se requerirán permisos. 

El ejemplo a continuación ejecuta por medio del programa psExec una terminal en el equipo remoto de interes: "psExec -u dominio\usuario -p password \\servidor cmd"


Con este proceso por lo tanto podremos disponer de la terminal de un equipo en remoto y de ahí ejecutar un comando que sea de interés. Como por ejemplo, un systeminfo.. 


También podría ejecutarse un comando para revisar procesos, para desinstalar programas o incluso para apagar el equipo por remoto. Como lo comente anteriormente, es una herramienta que ofrece una serie de posibilidades para acceso a datos y gestión remota de determinado equipo en la red. 

Si por ejemplo quisieramos conocer la informacion acerca de un sistema, se digitaria el siguiente comando:

psinfo.exe -u dominio\usuario -p password \\hostnameobjetivo



Con esto ya me evito ir hasta donde el usuario a revisar el equipo o a mirar un inventario!


Haciendo un breve resumen de cada uno de las herramientas se tiene lo siguiente;

PsExec: ejecuta procesos de forma remota
PsFile: muestra archivos abiertos de forma remota
PsGetSid: muestra el SID de un equipo o un usuario
PsInfo: muestra información acerca de un sistema
PsKill: elimina los procesos por el nombre o Id. de proceso
PsList: muestra información acerca de procesos
PsLoggedOn: averigua quién ha iniciado sesión de forma local y a través de recursos compartidos (origen completo incluido)
PsLogList: vuelca los registros de eventos
PsPasswd: cambia las contraseñas de cuenta
PsService: muestra y controla los servicios
PsShutdown: apaga y reinicia opcionalmente un equipo
PsSuspend: suspende los procesos


De seguir al pie de la letra el procedimiento tendría que funcionar. En caso de dudas quedare pendiente por correo electrónico o por medio de algunas de las redes. 

Hasta la próxima!





jueves, 14 de enero de 2016



Instalación de LAMP

La instalación que aplica para Elementary aplica igualmente para Ubuntu, en especial el 14.04 Como bien se sabe Elementary un fork de Ubuntu 14.04, cuya distribución tiene soporte 14.04 que va hasta el 2019. Teniendo en cuenta este procedimiento deberá ser válido para ambas distribuciones, teniendo en cuenta sobre todo que comparten el mismo sistema de gestión paquetes basados en APT.
LAMP a su vez es la combinación de Linux, Apache, MySql y PHP. Este procedimiento consistirá en la explicación de su instalación y detalles a tener en cuenta al momento de instalarlo sobre una distribución Ubuntu o Elementary.

1  
     1. Instalación Apache

     Para instalar Apache se digita el siguiente comando.

sudo apt-get install apache2

Posteriormente se valida por medio de la dirección del localhost de nuestra maquina dando el siguiente resultado por navegador:





Posteriormente el servidor apache podra ser operado de acuerdo al a siguiente sintaxis para procesos:

sudo service apache2 [start | restart | stop | status]

Con cada uno de estos parámetros estaremos indicando al servidor que inicie, que reinicie, que pare y que nos de el estado del servidor.


2. Instalación MySQL

Se procede posteriormente a instalar MySQL, el cual será nuestro gestor de base de datos. Al igual que para instalar apache, se ingresara el siguiente comando en consola:

sudo apt-get install mysql-server php5-mysql

En el proceso nos solicitara una contraseña por lo que es importante ingresar una que podamos recordar. Esto dado que todos los procesos que se hagan sobre mysql (como por ejemplo entrar al phpmyadmin) solicitaran esta contraseña.



Posteriormente se establecen algunos parametros de seguridad necesarios para tener mas seguridad sobre MySQL. En la consola digitar:

sudo mysql_install_db

Esto le dirá a MySQL la estructura de directorio donde se almacenara la información. Luego se digita:

sudo mysql_secure_installation

Le ejecución de este script hará que la configuración de MySQL sea más segura. Preguntara si desea cambiar la contraseña, removerá los usuarios anónimos, deshabilitara los logs remotos (es útil y seguro pero podría ser requerido en proyectos profesionales), removerá bases de datos de test.
Posteriormente se realiza prueba para verificar que el servidor esté funcionando:

Mysql –u root –p

Debe darnos salida a la terminal MySQL de la siguiente forma:

 


3. Instalacion PHP

Se procede por ultimo con la instalación de PHP y sus librerías:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Se procede entonces a dar prioridad a los archivos index.php (los archivos Index son los que el servidor tomara primero para mostrar, una página index puede ser el home de cualquier página, solo que acá no se le dará prioridad al archivo html, si no al archive php.) abriendo el archivo dir.conf de apache con el editor nano bajo el siguiente comando:

sudo nano /etc/apache2/mods-enabled/dir.conf



El archivo de configuración tiene un orden de archivos el cual ejecutara al momento de mostrar el index de la página. El primer elemento debe ser el archivo index.php, para que de esta forma apache le dé prioridad a los archivos de extensión php y no extensión html. SI se desea que el index sea tomado por un fichero de tipo html puede dejarse por defecto tal y como viene después de la instalación.    

Para Ubuntu y Elementary, igualmente para este tipo de instalación, el directorio donde se deben alojar los archivos de contenido para la página es el direcotorio html. De acuerdo a lo anterior se se creara un archivo PHP de prueba con las siguientes instrucciones:

1.       Se crea el archivo info (aun que puede llamarse test, prueba o lo que sea) por medio del siguiente comando: sudo nano /var/www/html/info.php.
2.       Luego se ingresa el siguiente código: <?php phpinfo() ?>
3.       Posteriormente se realiza la prueba ingresando a la página por medio del localhost.




Posteriormente se explicara la instalación de una interfaz para MySQL como lo podría ser myphpadmin. Algo sencillo pero a la vez útil para salir del paso en un proyecto pequeño donde se requiera trabajar bases de datos.