标签:partition Checking sdb1 filesystem ocfs2 dev How OCFS2 Linux
The post outlines the steps to resize an OCFS2 filesystem on Linux. The procedure should first be tested in test before being performed against a production environment.
1. Backup all data on the filesystem
Repartitioning a disk/device is a destructive process that may result in complete loss of volume data. Backup the contents of the volume to be resized before proceeding.
2. Globally unmount the filesystem to be resized
OCFS2 filesystem resize can only be performed with the filesystem unmounted from all cluster nodes. Unmount the filesystem to be resized on all cluster nodes. Use the mounted.ocfs2 command to verify if any nodes still have the volume mounted e.g.:
# mounted.ocfs2 -f Device FS Nodes /dev/sdb1 ocfs2 node01, node02 /dev/sdc1 ocfs2 node01, node02 /dev/sdg1 ocfs2 node01, node02
# mounted.ocfs2 -f Device FS Nodes /dev/sdb1 ocfs2 Not mounted /dev/sdc1 ocfs2 Not mounted /dev/sdg1 ocfs2 Not mounted
3. Perform a filesystem check
Before resizing the device or filesystem, perform a filesystem check. Be sure to correct/address any issues before proceeding.
# fsck.ocfs2 -fn /dev/sdb1 Checking OCFS2 filesystem in /dev/sdb1: label: resizer uuid: 21 bd e3 16 a6 a6 4e 95 89 23 77 c9 0d 9e 24 02 number of blocks: 1048265 bytes per block: 4096 number of clusters: 1048265 bytes per cluster: 4096 max slots: 6 /dev/sdb1 was run with -f, check forced. Pass 0a: Checking cluster allocation chains Pass 0b: Checking inode allocation chains Pass 0c: Checking extent block allocation chains Pass 1: Checking inodes and blocks. Pass 2: Checking directory entries. Pass 3: Checking directory connectivity. Pass 4a: checking for orphaned inodes Pass 4b: Checking inodes link counts. All passes succeeded.
4. Resize the underlying device/partition
The underlying LUN/device/partition upon which the filesystem resides must first be resized before the filesystem itself can be resized. The method, and therefore the commands required, to resize the device will differ depending upon the storage solution used. Note, as of OCFS2 version available at the time of writing this post, OCFS2 volumes may be resized larger, but not smaller.
In the following example, the OCFS2 partition to be resized resides on partition /dev/sdb1 (an iSCSI target) that is resized from 4Gb to 8Gb.
# df -kl /cfs03 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 4193060 1578984 2614076 38% /cfs03
# mount -t ocfs2 ... /dev/sdb1 on /cfs03 type ocfs2 (rw,_netdev,heartbeat=local)
Before Resize
# cat /proc/partitions | grep sdb 8 16 4194304 sdb 8 17 4194288 sdb1
During Resize (LUN resized, but not partition)
# cat /proc/partitions | grep sdb 8 16 8388608 sdb 8 17 4194288 sdb1
When using OCFS2 filesystems on partitioned devices, always ensure to recreate the partition using the original Start cylinder and larger End cylinder.
# fdisk /dev/sdb The number of cylinders for this disk is set to 8192. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 64 heads, 32 sectors/track, 8192 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 4096 4194288 83 Linux Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8192, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-8192, default 8192): Using default value 8192 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 64 heads, 32 sectors/track, 8192 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 8192 8388592 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.Note: If using device sizes greater than 2Tb, use the parted utilty instead of fdisk to manage partitions.
After device/partition resize, ensure that all cluster nodes’ operating systems detect the new sizing of the device/partition before proceeding. The following utilities/methods can be used to dynamically detect device/partition changes; partprobe, sfdisk, blockdev, cluster-wide node reboot. Use with caution, for example:
# /sbin/partprobe /dev/sdb
OR
# /sbin/sfdisk -R /dev/sdb
OR
# /sbin/blockdev --rereadpt /dev/sdb
Verify the kernel sees the modified device partition sizing. After Resize (both LUN and partition resized):
# cat /proc/partitions | grep sdb 8 16 8388608 sdb 8 17 8388592 sdb1
Note, depending on the kernel device naming scheme employed (udev, dm, EMC PowerPath etc.), the device file name used to refer to the device on one node may differ to that on other nodes and/or change to a different name – this is normal and expected.
5. Resize the OCFS2 filesystem
Once the device/partition has been resized and it’s new size visible to all cluster nodes, resize the OCFS2 filesystem using the tunefs.ocfs2 command. For example:
# tunefs.ocfs2 -S /dev/sdb1 tunefs.ocfs2 1.2.4 Changing volume size from 1048572 blocks to 2097148 blocks Proceed (y/N): y Resized volume Wrote Superblock
6. Perform filesystem check
Having resized the OCFS2 partition, perform another filesystem check before attempting to mount the resized volume.
# fsck.ocfs2 -fn /dev/sdb1 Checking OCFS2 filesystem in /dev/sdb1: label: resizer uuid: 22 02 bb 51 b2 90 4a 4d 82 30 13 5d cc dd 05 bc number of blocks: 2097148 bytes per block: 4096 number of clusters: 2097148 bytes per cluster: 4096 max slots: 6 /dev/sdb1 was run with -f, check forced. Pass 0a: Checking cluster allocation chains Pass 0b: Checking inode allocation chains Pass 0c: Checking extent block allocation chains Pass 1: Checking inodes and blocks. Pass 2: Checking directory entries. Pass 3: Checking directory connectivity. Pass 4a: checking for orphaned inodes Pass 4b: Checking inodes link counts. All passes succeeded.
7. Mount the resized OCFS2 volume
Remount the resized OCFS2 filesystem on all cluster nodes.
# mounted.ocfs2 -f Device FS Nodes /dev/sdc1 ocfs2 node01, node02 /dev/sdf1 ocfs2 node01, node02 /dev/sdb1 ocfs2 node01, node02
# mount -t ocfs2 /dev/sdb1 on /cfs03 type ocfs2 (rw,_netdev,heartbeat=local) ...
# df -kl /cfs03 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 8388592 1579120 6809472 19% /cfs03How to Extend ocfs2 Filesystem with tunefs.ocfs2 Command (Whole device used without partitions)
标签:partition,Checking,sdb1,filesystem,ocfs2,dev,How,OCFS2,Linux 来源: https://www.cnblogs.com/lkj371/p/15319402.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。