En esta entrada vamos a indicar cómo añadir discos en el sistema operativo Linux de forma manual. Se explica también como presentarlos para sean los discos que usemos para almacenar los datos de nuestra base de datos Oracle.
En primer lugar vamos a listar los discos que tenemos en nuestra máquina virtual.
Hay dos formas, una de forma manual y otra a través de una forma gráfica cómo se muestra a continuación.
En este documento no vamos a realizar las acciones de forma gráfica, ya que son bastante intuitivas. Puedes apoyarte en la documentación para realizar las acciones de forma gráfica. Existen otras alternativas gráficas y muy usadas cómo gparted, que presentaremos en posteriores post. En este caso, por tanto vamos a proceder a realizar el proceso manualmente.
Pasos particionar un disco Linux de forma manual
Paso 1- Particionar el disco
Listamos los discos que tenemos disponibles con lsblk. En este caso disponemos de tres discos de 25G para particionar (sdb,sdc,sdd).
Esto mismo lo puedes hacer con fdisk –l
Vamos a proceder a particionar los dispositivos. Para ello usamos el comando fdisk (como root) y el dispositivo a particionar.
fdisk /dev/sdb
[root@oracle-21 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xf8f72c85.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)T
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-52428799, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-52428799, default 52428799):
<enter>
Created a new partition 1 of type ‘Linux’ and of size 25 GiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto
1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep
1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT
Hex code (type L to list all codes): 83
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
La secuencia es la siguiente:
n,p,1,<INTRO>,<INTRO>,w
Si queremos ver las opciones que vamos a utilizar antes de particionar:
n,p,1,<INTRO>, <INTRO>,t,83,w
Con ello estamos indicando al SSO que se trata de una nueva partición (n), que es una partición primaria (p), el número de partición (1), se pulsó Intro, con esto le indicamos al SSOO que queremos que todo el disco esté en una sola partición. Luego pulsamos la tecla (t) para indicarle el tipo de partición, (83) para indicarle que se trata de una partición de Linux y posteriormente (w). Cuando pulsamos w, es cuando realmente el SSOO comienza a realizar los cambios en el disco.
Por lo tanto la secuencia sería: n,p,1,<INTRO>,<INTRO>,w
En cuanto a los tipos de particiones disponibles es posible visualizar todas las opciones disponibles antes de elegir el tipo de partición, en este caso Linux, pulsando la tecla L, tal y como se muestra en la salida de pantalla anterior.
Con cualquiera de las opciones indicadas con anterioridad podemos ver cómo se encuentran los dispositivos, y podemos ver las partición recientemente creada.
Paso 2-Crear filesystem
Ahora necesitamos crear el sistema de archivos, o filesystem, para ello usaremos el comando mkfs. El comando mkfs tiene múltiples variantes, en este blog no se pretende ver este comando en detalle, nos estamos enfocando específicamente en crear el almacenamiento necesario para almacenar nuestras BBDD.
Vamos a formatear la partición que hemos creado con anterioridad, que en nuestro caso es la partición primaria 1 (sdb1), recordad que el dispositivo /dev/sdb se trata del disco duro en sí.
Vamos ahora por tanto a formatear la partición de tipo Linux. A este tipo de particiones se le puede dar formato ext2, ext3 y ext4. Por defecto sino se especifica la partición se crea por default como ext2, usar ext2 ya no es muy aconsejable, la mayoría de sistemas Linux usan ext4, por tanto en este caso, vamos a darle formato ext4, que es el que actualmente se está utilizando.
Puedes usar cualquiera de estas dos opciones (como root).
#> mkfs -t ext4 /dev/sdb1
#> mkfs.ext4 /dev/sdb1
(Puedes añadir –V de “verbose” para ver más información mientras el commando está en marcha)
[root@oracle-21 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: 4096/6553344
done
Creating filesystem with 6553344 4k blocks and 1638400 inodes
Filesystem UUID: acb407b4-8572-447d-aeed-fb0f2c630daf
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Verificamos que el comando se ha ejecutado correctamente:
[root@oracle-21 ~]# file -sL /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=acb407b4-8572-447d-aeed-fb0f2c630daf (extents) (64bit) (large files) (huge files)
[root@oracle-21 ~]#
Paso 3- Crear el punto de montaje
Una vez hemos realizado los pasos anteriores, simplemente tenemos que crear el directorio en el sistema operativo con el nombre que queremos darle a la partición creada anteriormente, que será el nombre al que nos referiremos posteriormente a nivel de almacenamiento.
Para ello simplemente creamos el directorio con mkdir <nombre directorio>.
En este caso como va a ser el espacio que almacenará datos para nuestra BBDD, lo llamaremos p.eje. oradata.
[root@oracle-21 ~]# mkdir /oradata
Paso 4- Crear el punto de montaje, montar la partición
En este punto lo que se necesita es montar la partición, para ello únicamente tenemos que indicarle al SSOO, qué partición queremos montar y cómo lo queremos ver representado a nivel de SSOO, a nivel de directorio. En nuestro caso, se monta la partición /dev/sdb1 como /oradata.
root@oracle-21 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.4M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/ol-root 26G 5.4G 21G 21% /
/dev/sda1 1014M 318M 697M 32% /boot
tmpfs 796M 28K 796M 1% /run/user/1000
/dev/sr0 10G 10G 0 100% /run/media/oracle/OL-8-5-0-BaseOS-x86_64
[root@oracle-21 ~]# mount /dev/sdb1 /oradata
[root@oracle-21 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/ol-root 26G 5.4G 21G 21% /
/dev/sda1 1014M 318M 697M 32% /boot
tmpfs 796M 28K 796M 1% /run/user/1000
/dev/sr0 10G 10G 0 100% /run/media/oracle/OL-8-5-0-BaseOS-x86_64
/dev/sdb1 25G 45M 24G 1% /oradata
[root@oracle-21 ~]#
La configuración de esta partición desaparecerá en el próximo reinicio, donde habría que volver a montar de forma manual todos y cada uno de los puntos de montajes que necesitamos acceder a nivel de SSOO, mientras todo este tiempo, como es evidente no se podrá acceder a los datos que sobre ese directorio se almacenan. Para que esto no ocurra es necesario configurar el fichero fstab, ubicado en la ruta /etc. El archivo /etc/fstab contiene la configuración que indica al sistema como deben montarse las unidades del equipo. Es un fichero con 6 columnas a configurar.
Al igual que hemos indicado antes con el comando mkfs, los parámetros del punto de montaje varían según necesidades, en nuestro caso, con estos parámetros es suficiente.
/dev/sdb1 /oradata ext4 defaults 0 0
Cómo último paso únicamente quedaría montarlo.
mount /oradata
Vamos a repetir los siguientes pasos con los dispositivos (sdc, sdd) con el fin de disponer de /oradata /oradata1 /oradata2
La foto final sería algo como lo siguiente:
Con este almacenamiento ya puedes lanzar la creación de la base de datos, los datos se deben de repartir entre los directorios recientemente creados. Esta configuración con la aparición de ASM, queda prácticamente obsoleta para aquellas instalaciones más o menos grandes, para que Oracle Automatic Storage Manager (ASM) pueda identificar los discos, estos deben de estar identificados de manera consistente con propiedades y permisos específicos, esto se puede realizar (en Linux) usando ASMLib o Udev, en este ejemplo añadiremos los discos con el administrador de dispositivos de Linux, UDEV. En un post posterior, describiremos cómo realizar las configuraciones necesarias para que los discos sean gestionados vía UDEV o ASMlib.