Primero , desde la consola del cloud, tenemos 2 opciones
La primera y mas facil es agregar una lun ( un disco) y luego desde el Sistema operativo, la rescaneamos y hacemos todo el procedimiento para agregar el disco, extender el logical volume, y agrandar el filesystem.
La segunda opcion, es agrandar el almacenamiento de bloques desde la consola del OCI.
En este doc, voy a describir los pasos que debo hacer en el sistema operativo, luego de agrandar el disco desde el cloud.
[root@datawarehouse ~]# df -h /backup
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_backup-lv_backup 100G 76G 25G 76% /backup
[root@datawarehouse ~]#
Chequeo de cuanto es el physical volume actual que contiene el fs /backup
[root@datawarehouse ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_Swap lvm2 a-- 50.00g 30.00g
/dev/sdb1 vg_backup lvm2 a-- 100.00g 0
/dev/sdc1 vg_u02 lvm2 a-- 200.00g 0
/dev/sdd1 vg_u01 lvm2 a-- 100.00g 0
[root@datawarehouse ~]# fdisk -l |grep /dev/sd
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sdb1 2048 209715199 104856576 8e Linux LVM
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/sda1 2048 104857599 52427776 8e Linux LVM
Disk /dev/sdd: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sdd1 2048 209715199 104856576 8e Linux LVM
Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
/dev/sdc1 2048 419430399 209714176 8e Linux LVM
Con estos 2 comandos ( que Oracle llama "comandos de nueva exploracion") releemos el tamaño de los discos
[root@datawarehouse ]# dd iflag=direct if=/dev/oracleoci/oraclevdc of=/dev/null count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000854999 s, 599 kB/s
[root@datawarehouse ~]# echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevdc | cut -d'/' -f 2`/device/rescan
Vuelvo a chequear con fdisk y veo que ya lo agrego
[root@datawarehouse ~]# fdisk -l |grep /dev/sd
Disk /dev/sdb: 214.7 GB, 214748364800 bytes, 419430400 sectors
/dev/sdb1 2048 209715199 104856576 8e Linux LVM
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/sda1 2048 104857599 52427776 8e Linux LVM
Disk /dev/sdd: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sdd1 2048 209715199 104856576 8e Linux LVM
Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
/dev/sdc1 2048 419430399 209714176 8e Linux LVM
Disk /dev/sde: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sde1 1 97677311 48838655+ ee GPT
[root@datawarehouse ~]#100>200>50>
Con el lsblk veo que todavia el disco sdb esta en 100gb
[root@datawarehouse DMP]# ls -l /dev/oracleoci/oraclevd*
lrwxrwxrwx. 1 root root 6 May 12 07:48 /dev/oracleoci/oraclevda -> ../sde
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevda1 -> ../sde1
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevda2 -> ../sde2
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevda3 -> ../sde3
lrwxrwxrwx. 1 root root 6 May 12 07:48 /dev/oracleoci/oraclevdb -> ../sdd
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevdb1 -> ../sdd1
lrwxrwxrwx. 1 root root 6 May 12 07:48 /dev/oracleoci/oraclevdc -> ../sdb
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevdc1 -> ../sdb1
lrwxrwxrwx. 1 root root 6 May 12 07:48 /dev/oracleoci/oraclevdd -> ../sdc
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevdd1 -> ../sdc1
lrwxrwxrwx. 1 root root 6 May 12 07:48 /dev/oracleoci/oraclevde -> ../sda
lrwxrwxrwx. 1 root root 7 May 12 07:48 /dev/oracleoci/oraclevde1 -> ../sda1
[root@datawarehouse DMP]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 210G 0 disk
└─sdb1 8:17 0 100G 0 part
└─vg_backup-lv_backup 252:0 0 100G 0 lvm /backup
[root@datawarehouse ]#
Ahora, si, me anoto los sectores que ocupa ahora el /dev/sdb, debo anotar en que sector empieza y en cual termina.
[root@datawarehouse ]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdb: 440401920s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 209715199s 209713152s primary lvm
(parted)
Con estos datos voy a hacer un parted al disco que quiero agrandar y un mkpart
Primero hay que tomar nota de los valores de las columnas Número, Inicio y Sistema de archivos de la partición raíz.
Ejecuto el siguiente comando para eliminar la partición raíz existente:
(parted) rm <partition_number>
<partition_number> es el valor de la columna Número.
Ejecute el siguiente comando para volver a crear la partición:
(parted) mkpart
En la petición de datos Start?, especifique el valor de la columna Inicio. En la petición de datos File system type?, especifique el valor de la columna Sistema de archivos. Especifique 100 % para la petición de datos End?.
Ejecute el siguiente comando para salir de parted:
(parted) quit
Aca abajo estan los ejemplo con datos reales
[root@datawarehouse]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdb: 440401920s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 209715199s 209713152s primary lvm
(parted) rm 1
Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a
result, the old partition(s) will remain in use. You should reboot now before making further changes.
Ignore/Cancel? Cancel
(parted) p
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdb: 440401920s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
(parted) quit
Information: You may need to update /etc/fstab.
[root@datawarehouse]#
Ahora por ultimo, modifico el tamaño del disco y demas datos.
[root@datawarehouse /]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdb: 225GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
(parted) unit s
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? xfs
Start? 2048
End? 419430398 --->> este dato lo saque multiplicando x 2 los sectores que ocupaba antes el disco de 100gb, pude haber puesto 100% y era lo mismo
(parted) quit
Information: You may need to update /etc/fstab.
Listo , ahora chequeamos con lsblk,que realmete haya agregado esos 100+ al sdb1
[root@datawarehouse /]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 210G 0 disk
└─sdb1 8:17 0 200G 0 part
└─vg_backup-lv_backup 252:0 0 100G 0 lvm
[root@datawarehouse /]#
Ahora queda desmontar el fs /backup, hacer un xfs_repair
[root@datawarehouse /]# umount /backup
[root@datawarehouse /]# xfs_repair /dev/mapper/vg_backup-lv_backup
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 2
- agno = 3
- agno = 1
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
[root@datawarehouse /]#
Por ultimo, un pvresize , y un lvextend
[root@datawarehouse /]# pvresize /dev/sdb1
Physical volume "/dev/sdb1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@datawarehouse /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_Swap lvm2 a-- <50 .00g="" div="" g="">50>
/dev/sdb1 vg_backup lvm2 a-- <200 .00g="" 100.00g="" font="">200>
/dev/sdc1 vg_u02 lvm2 a-- <200 .00g="" 0="" div="" nbsp="">200>
/dev/sdd1 vg_u01 lvm2 a-- <100 .00g="" 0="" div="" nbsp="">100>
[root@datawarehouse /]# lvextend -L+100G /dev/mapper/vg_backup-lv_backup
Size of logical volume vg_backup/lv_backup changed from <100 .00="" div="" extents="" gib="" to="">100>
Logical volume vg_backup/lv_backup successfully resized.
[root@datawarehouse /]# xfs_growfs -d /backup
meta-data=/dev/mapper/vg_backup-lv_backup isize=256 agcount=4, agsize=6553344 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=26213376, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=12799, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 26213376 to 52427776
[root@datawarehouse /]# df -h /backup
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_backup-lv_backup 200G 76G 125G 38% /backup
[root@datawarehouse /]#
Muy buen articulo Diego!
ResponderEliminarPodrías haber echo todo online, growpart, pvresize y lvextend.
ResponderEliminarNo se si xfs_grow soporta online
Gracias por tu comentario, tuve que desmontar para hacer el xfs_repair, quizas no es necesario realizar el repair, pero era la primera vez que lo hacia y lo decia el instructivo.
EliminarSiempre lo hice, agregando una nueva lun, nunca agregando espacio al almacenamiento de bloque
I am thanked to visit this site as it pairs up with excellent content to glorify the existing knowledge in a better way. So, it would be great to intensify your knowledge with the procurement of Assignment Help service. Here, you find untold truth for acing success.
ResponderEliminar