一、内容介绍
1、问题描述
1)、问题一
CentOS 6.x 在格式化大于16TB的ext4分区时,会提示如下错误:
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: Size of device /dev/sda1 too big to be expressed
in 32 bits using a blocksize of 4096.
2)、问题二
CentOS 6.x 无法使用fdisk
分区大于2TB的磁盘。
2、原因分析
1)、问题一:
原因在于CentOS 自带的 e2fsprogs 版本为1.41.12较低,无法创建16TB以上的文件系统。
2)、问题二:
原因在于MBR分区表只支持2T磁盘。
3、解决方案
1)、问题一:
解决方案为手工下载最新的e2fsprogs源码包,进行编译安装,然后使用mkfs.ext4 命令使用64位的方式进行磁盘格式化。
2)、问题二:
使用parted
命令将MBR分区表,改为GPT分区表。
二、解决方案的实现
下面通过在VirtualBox上进行实验来验证上面方案的可行性:
1、在VB虚拟机上添加硬盘
这里假设你的VB虚拟机的CentOS已经通过yum update将全部软件升级到最新版本
在VB虚拟机中添加10块2TB的硬盘(此时虚拟机须处于关机状态),如下图:
每个虚拟硬盘都是“动态分配存储”,总计容量为20TB,这样就做成raid5最量就会超过16TB了。
2、生成软RAID磁盘阵列
1)、硬盘分区
启动虚拟机登录系统后输入lsblk
命令查看虚拟机可识别的硬盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47G 0 part /
sdb 8:16 0 2T 0 disk
sdc 8:32 0 2T 0 disk
sdd 8:48 0 2T 0 disk
sde 8:64 0 2T 0 disk
sdf 8:80 0 2T 0 disk
sdg 8:96 0 2T 0 disk
sdh 8:112 0 2T 0 disk
sdi 8:128 0 2T 0 disk
sdj 8:144 0 2T 0 disk
sdk 8:160