• 沒有找到結果。

扩展 SCSI 数据盘的分区和文件系统(Linux 内核低于 3.6.0)

操作场景

通过云服务管理控制台扩容成功后,仅扩大了云硬盘的存储容量,因此需要参考本章 节操作扩展分区和文件系统。

对于Linux操作系统而言,需要将扩容部分的容量划分至已有分区内,或者为扩容部分 的云硬盘分配新的分区。

本文以“CentOS 7.4 64位”操作系统为例,提供针对SCSI数据盘的MBR分区的操作指 导。不同操作系统的操作可能不同,本文仅供参考,具体操作步骤和差异请参考对应 操作系统的产品文档。

● 新增MBR分区

● 扩大已有MBR分区

须知

扩容时请谨慎操作,误操作可能会导致数据丢失或者异常,建议扩容前对数据进行备 份,可以使用CBR或者快照功能,CBR请参见管理备份云硬盘,快照功能请参见创建快 照(公测)。

前提条件

● 已通过管理控制台扩容系统盘容量,并已挂载至云服务器,请参见扩容“正在使 用”状态的云硬盘容量或者扩容“可用”状态的云硬盘容量。

● 已登录云服务器。

– 弹性云服务器请参见登录弹性云服务器。

– 裸金属服务器请参见登录裸金属服务器。

新增 MBR 分区

数据盘“/dev/sda”原有容量50GB,只有一个分区“/dev/sda1”。将数据盘容量扩 大至100GB,本示例为新增的50GB分配新的MBR分区“/dev/sda2”。

步骤1 执行以下命令,查看磁盘的分区信息。

fdisk -l

回显类似如下信息:

[root@ecs-scsi ~]# fdisk -l

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos

Disk identifier: 0x000bcb4e

Device Boot Start End Blocks Id System /dev/vda1 * 2048 83886079 41942016 83 Linux Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos

Disk identifier: 0x915ffe6a

Device Boot Start End Blocks Id System

echo 1 > /sys/class/scsi_device/%d:%d:%d:%d/device/rescan &

其中“%d:%d:%d:%d”为“/sys/class/scsi_device/”路径下的文件夹,执行 ll /sys/class/scsi_device/命令获取。

回显类似如下信息,“2:0:0:0”即为待获取的文件夹。

cs-xen-02:/sys/class/scsi_device # ll /sys/class/scsi_device/

total 0

lrwxrwxrwx 1 root root 0 Sep 26 11:37 2:0:0:0 -> ../../devices/xen/vscsi-2064/host2/target2:0:0/2:0:0:0/

scsi_device/2:0:0:0

命令示例:

echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan &

2. 刷新完成后,执行以下命令,再次查看磁盘分区信息。

[root@ecs-scsi ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help):

步骤4 输入“n”,按“Enter”,开始新建分区。

回显类似如下信息:

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

Command (m for help): n Partition type:

p primary (1 primary, 0 extended, 3 free) e extended

Select (default p):

表示磁盘有两种分区类型:

● “p”表示主分区。

● “e”表示扩展分区。

说明

磁盘使用MBR分区形式,最多可以创建4个主分区,或者3个主分区加1个扩展分区,扩展分区不 可以直接使用,需要划分成若干个逻辑分区才可以使用。

磁盘使用GPT分区形式时,没有主分区、扩展分区以及逻辑分区之分。

步骤5 以创建一个主分区为例,输入“p”,按“Enter”。

回显类似如下信息:

Select (default p): p

Partition number (2-4, default 2):

“Partition number”表示主分区编号,可以选择2-4,由于1已被使用,此处从2开 始。

步骤6 以分区编号选择“2”为例,输入分区编号“2”,按“Enter”。

回显类似如下信息:

Partition number (2-4, default 2): 2

First sector (104857600-209715199, default 104857600):

“First sector”表示起始磁柱值,可以选择104857600-209715199,默认为 104857600。

步骤7 输入新分区的起始磁柱值,以使用默认起始磁柱值为例,按“Enter”。

系统会自动提示分区可用空间的起始磁柱值和截止磁柱值,可以在该区间内自定义,

或者使用默认值。起始磁柱值必须小于分区的截止磁柱值。

回显类似如下信息:

First sector (104857600-209715199, default 104857600):

Using default value 104857600

Last sector, +sectors or +size{K,M,G} (104857600-209715199, default 209715199):

“Last sector”表示截止磁柱值,可以选择104857600-209715199,默认为 209715199。

步骤8 输入新分区的截止磁柱值,以使用默认截止磁柱值为例,按“Enter”。

系统会自动提示分区可用空间的起始磁柱值和截止磁柱值,可以在该区间内自定义,

或者使用默认值。起始磁柱值必须小于分区的截止磁柱值。

回显类似如下信息:

Last sector, +sectors or +size{K,M,G} (104857600-209715199, default 209715199):

Using default value 209715199

Partition 2 of type Linux and of size 50 GiB is set Command (m for help):

步骤9 输入“p”,按“Enter”,查看新建分区。

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos

Disk identifier: 0x915ffe6a

Device Boot Start End Blocks Id System /dev/sda1 2048 104857599 52427776 83 Linux /dev/sda2 104857600 209715199 52428800 83 Linux Command (m for help):

步骤10 输入“w”,按“Enter”,将分区结果写入分区表中。

回显类似如下信息:

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.

mkfs -t ext4 /dev/sda2 回显类似如下信息:

[root@ecs-scsi ~]# mkfs -t ext4 /dev/sda2 mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2) Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks 3276800 inodes, 13107200 blocks

655360 blocks (5.00%) reserved for the super user First data block=0

Maximum filesystem blocks=2162163712 400 block groups

32768 blocks per group, 32768 fragments per group 8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424

Allocating group tables: done Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

● xfs文件系统命名示例:

mkfs -t xfs /dev/sda2

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

回显类似如下信息:

[root@ecs-scsi ~]# mkfs -t xfs /dev/sda2

meta-data=/dev/sda2 isize=512 agcount=4, agsize=3276800 blks = sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks

naming =version2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=6400, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0

格式化需要等待一段时间,请观察系统运行状态,若回显中进程提示为done,则表示 格式化完成。

步骤13 (可选)执行以下命令,新建挂载目录。

若需要挂载至新建目录下,执行该操作。

mkdir 挂载目录

以新建挂载目录“/mnt/test”为例:

mkdir /mnt/test

步骤14 执行以下命令,挂载新建分区。

mount 磁盘分区挂载目录

以挂载新建分区“/dev/sda2”至“/mn/test”为例:

mount /dev/sda2 /mnt/test

说明

新增加的分区挂载到不为空的目录时,该目录下原本的子目录和文件会被隐藏,所以,新增的分 区最好挂载到空目录或者新建目录。如确实要挂载到不为空的目录,可将该目录下的子目录和文 件临时移动到其他目录下,新分区挂载成功后,再将子目录和文件移动回来。

步骤15 执行以下命令,查看挂载结果。

df -TH

回显类似如下信息:

[root@ecs-scsi ~]# df -TH

Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 43G 2.0G 39G 5% /

devtmpfs devtmpfs 509M 0 509M 0% /dev tmpfs tmpfs 520M 0 520M 0% /dev/shm tmpfs tmpfs 520M 7.2M 513M 2% /run tmpfs tmpfs 520M 0 520M 0% /sys/fs/cgroup tmpfs tmpfs 104M 0 104M 0% /run/user/0 /dev/sda1 ext4 53G 55M 50G 1% /mnt/sdc /dev/sda2 ext4 53G 55M 50G 1% /mnt/test

说明

云服务器重启后,挂载会失效。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自 动挂载,请参见设置开机自动挂载磁盘分区。

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

扩大已有 MBR 分区

须知

扩大已有分区不会删除数据盘上的数据,但是需要通过umount命令先卸载已有分区,

因此会影响线上业务运行。

SCSI数据盘“/dev/sda”原有容量100GB,有两个分区“/dev/sda1 ”和“/dev/

sda2”。将数据盘容量扩大至150GB,本示例将新增的50GB划分至已有的MBR分区

“/dev/sda2”内。

扩容后的新增存储空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支 持将新增容量划分至排在末尾的分区。

步骤1 执行以下命令,查看磁盘的分区信息。

fdisk -l

回显类似如下信息:

[root@ecs-scsi ~]# fdisk -l

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos

Disk identifier: 0x000bcb4e

Device Boot Start End Blocks Id System /dev/vda1 * 2048 83886079 41942016 83 Linux Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos

Disk identifier: 0x915ffe6a

Device Boot Start End Blocks Id System /dev/sda1 2048 104857599 52427776 83 Linux /dev/sda2 104857600 209715199 52428800 83 Linux

记录待扩大分区的起始磁柱值(Start)和截止磁柱值(End),本示例中待扩大分区

“/dev/sda2”的起始磁柱值为104857600,截止磁柱值为209715199。

查看回显中SCSI数据盘“/dev/sda”的容量,扩容的容量是否已经包含在容量总和 中。

● 若扩容的容量未在数据盘容量总和中,请执行步骤2刷新系统内容量。

● 若扩容的容量已在数据盘容量总和中,请记录待扩大分区的起始和截止磁柱值,

这些值在后续重新创建分区时需要使用,记录完成后执行步骤3。

步骤2 (可选)执行以下步骤,刷新系统内SCSI数据盘的容量。

1. 执行以下命令,刷新云服务器内SCSI数据盘的容量。

echo 1 > /sys/class/scsi_device/%d:%d:%d:%d/device/rescan &

其中“%d:%d:%d:%d”为“/sys/class/scsi_device/”路径下的文件夹,执行 ll /sys/class/scsi_device/命令获取。

回显类似如下信息,“2:0:0:0”即为待获取的文件夹。

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

cs-xen-02:/sys/class/scsi_device # ll /sys/class/scsi_device/

total 0

lrwxrwxrwx 1 root root 0 Sep 26 11:37 2:0:0:0 -> ../../devices/xen/vscsi-2064/host2/target2:0:0/2:0:0:0/

scsi_device/2:0:0:0

命令示例:

echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan &

2. 刷新完成后,执行以下命令,再次查看磁盘分区信息。

fdisk -l

若扩容的容量已在数据盘容量总和中,请记录待扩大分区的起始和截止磁柱值,

这些值在后续重新创建分区时需要使用,记录完成后执行步骤3。

步骤3 执行如下命令,卸载磁盘分区。

umount 磁盘分区 命令示例:

umount /dev/sda2

步骤4 执行以下命令,进入fdisk分区工具。

fdisk 磁盘 命令示例:

fdisk /dev/sda 回显类似如下信息:

[root@ecs-scsi ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help):

步骤5 执行以下步骤,删除待扩大的分区。

1. 输入“d”,按“Enter”,删除磁盘分区。

回显类似如下信息:

Command (m for help): d Partition number (1,2, default 2):

2. 输入分区编号,此处以分区编号选择“2”为例,按“Enter”,删除磁盘分区。

回显类似如下信息:

Partition number (1,2, default 2): 2 Partition 2 is deleted

Command (m for help):

说明

删除分区后,请参考以下操作步骤扩大原有分区,则不会导致数据盘内数据的丢失。

步骤6 输入“n”,按“Enter”,开始新建分区。

回显类似如下信息:

Command (m for help): n Partition type:

最佳实践 4 扩展磁盘分区和文件系统(Linux 内核低于 3.6.0)

表示磁盘有两种分区类型:

● “p”表示主分区。

● “e”表示扩展分区。

说明

磁盘使用MBR分区形式,最多可以创建4个主分区,或者3个主分区加1个扩展分区,扩展分区不 可以直接使用,需要划分成若干个逻辑分区才可以使用。

磁盘使用GPT分区形式时,没有主分区、扩展分区以及逻辑分区之分。

步骤7 此处分区类型需要与原分区保持一致,以原分区类型是主要分区为例,输入“p”,按

“Enter”,开始重新创建一个主分区。

回显类似如下信息:

Select (default p): p

Partition number (2-4, default 2):

“Partition number”表示主分区编号。

步骤8 此处分区编号需要与原分区保持一致,以原分区编号是“2”为例,输入分区编号

“2”,按“Enter”。

回显类似如下信息:

Partition number (2-4, default 2): 2

First sector (104857600-314572799, default 104857600):

“First sector”表示起始磁柱值。

说明

以下操作会导致数据丢失:

选择的起始磁柱值与原分区的不一致。

选择的截止磁柱值小于原分区的值。

步骤9 此处必须与原分区保持一致,输入步骤1或者步骤2记录的起始磁柱值104857600,此 处该值也为默认值,按“Enter”。

步骤9 此处必须与原分区保持一致,输入步骤1或者步骤2记录的起始磁柱值104857600,此 处该值也为默认值,按“Enter”。