一、内容介绍

1、问题描述

1)、问题一
CentOS 6.x 在格式化大于16TB的ext4分区时,会提示如下错误:

mke2fs1.41.12(17-May-2010)
mkfs.ext4:Sizeofdevice/dev/sda1toobigtobeexpressed
in32bitsusingablocksizeof4096.123123

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的硬盘(此时虚拟机须处于关机状态),如下图:

这里写<a href=图片描述" title="" style="border:none;" src="http://img.blog.csdn.net/20170109203035666">

每个虚拟硬盘都是“动态分配存储”,总计容量为20TB,这样就做成raid5最量就会超过16TB了。

2、生成软RAID磁盘阵列

1)、硬盘分区

启动虚拟机登录系统后输入lsblk命令查看虚拟机可识别的硬盘

[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINT
sr011:011024M0rom
sda8:0050G0disk
├─sda18:101G0part/boot
├─sda28:202G0part[SWAP]
└─sda38:3047G0part/
sdb8:1602T0disk
sdc8:3202T0disk
sdd8:4802T0disk
sde8:6402T0disk
sdf8:8002T0disk
sdg8:9602T0disk
sdh8:11202T0disk
sdi8:12802T0disk
sdj8:14402T0disk
sdk8:16002T0disk12345678910111213141516171234567891011121314151617

可以看到10块硬盘已经全部识别,但是还没有进行分区, 这里我们使用fdisk逐一进行分区,以便制作软RAID.
这里需要注意的是:如果是在真实的服务器上,是不会看到这么多硬盘的。因为服务器通过RAID卡,将多块硬盘合并为一块硬盘。在本文后面会提到如何使用parted分区超过2TB的硬盘
sdb这块硬盘为例,进行分区:

[root@localhost~]#fdisk/dev/sdb
Command(mforhelp):n
Commandaction
eextended
pprimarypartition(1-4)
p
Partitionnumber(1-4):1Firstcylinder(1-267349,default1):
Usingdefaultvalue1Lastcylinder,+cylindersor+size{K,M,G}(1-267349,default267349):
Usingdefaultvalue267349Command(mforhelp):t
Selectedpartition1Hexcode(typeLtolistcodes):fd
Changedsystemtypeofpartition1tofd(Linuxraidautodetect)

Command(mforhelp):p
DeviceBootStartEndBlocksIdSystem
/dev/sdb112673492147480811fdLinuxraidautodetect

Command(mforhelp):w1234567891011121314151617181920212212345678910111213141516171819202122

上面的步骤基本上就是我们平时进行分区时需要进行操作的步骤。只有t命令平时不太用到.t命令的意思就是“修改分区类型“,将标准的linux分区修改为fd“Linux raid autodetect”以便供软RAID使用。

下面逐一再将其他磁盘进行分区,全部分区完成后,使用lsblk查看分区情况:

[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINT
sr011:011024M0rom
sda8:0050G0disk
├─sda18:101G0part/boot
├─sda28:202G0part[SWAP]
└─sda38:3047G0part/
sdb8:1602T0disk
└─sdb18:1702T0part
sdc8:3202T0disk
└─sdc18:3302T0part
sdd8:4802T0disk
└─sdd18:4902T0part
sde8:6402T0disk
└─sde18:6502T0part
sdf8:8002T0disk
└─sdf18:8102T0part
sdg8:9602T0disk
└─sdg18:9702T0part
sdh8:11202T0disk
└─sdh18:11302T0part
sdi8:12802T0disk
└─sdi18:12902T0part
sdj8:14402T0disk
└─sdj18:14502T0part
sdk8:16002T0disk
└─sdk18:16102T0part123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627
2)、建立RAID5

使用mdadm建立RAID5磁盘阵列:

[root@localhost~]#mdadm-C/dev/md5\-ayes-l5-n10-x0\
/dev/sd[b,c,d,e,f,g,h,i,j,k]1mdadm:Defaultingtoversion1.2Metadata
mdadm:array/dev/md5started.123456123456

可以使用如下命令查看RAID5状态:

mdadm-D/dev/md511

3、格式化磁盘阵列

如果现在使用mkfs.ext4格式化/dev/md5将会出现如下错误:

[root@localhost~]#mkfs.ext4/dev/md5mke2fs1.41.12(17-May-2010)
mkfs.ext4:Sizeofdevice/dev/md5toobigtobe
expressedin32bitsusingablocksizeof4096.12341234

报错原因在文章开头已经介绍了,这里我们先下载最新的e2fsprogs源码包,下载地址如下:
ftp://ftp.ntu.edu.tw/linux/kernel/people/tytso/e2fsprogs/

当前版本为1.43.3,下载后,进行编码安装:

tar-zxvfe2fsprogs-1.43.3.tar.gzcde2fsprogs-1.43.3mkdirbuild

cdbuild/

../configure

make

makeinstall1234567891011121312345678910111213

编译完成后使用如下命令格式化:

mke2fs-O64bit,\has_journal,extents,\huge_file,flex_bg,uninit_bg,\dir_nlink,\extra_isize\-i4194304\/dev/md512345671234567

或者:

mkfs.ext4-O64bit/dev/md511

挂载磁盘到/mnt

mount/dev/md5/mnt11

查看磁盘挂载情况:

[root@localhostbuild]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/sda347G1.1G43G3%/tmpfs939M0939M0%/dev/shm/dev/sda1976M56M870M6%/boot/dev/md518T24K17T1%/mnt12345671234567

OK! 问题1顺利解决。证明这个方案还是可行的!

4、使用parted 分区2TB以上磁盘

上面第1和第2步骤,是我们为了进行实验是否能格式化16TB以上分区而搭建的实验环境。在生产环境下,一般不会用到软RAID,服务器是通过RAID卡将多块磁盘形成一个磁盘阵列。在启动系统后,有会一个没有分区的大磁盘。这种情况下就不能使用fdisk命令进行分区了。在这里,我们使用parted来进行分区。

这里我用一个2TB的磁盘来估演示,如果使用parted将整个磁盘阵列分为一个分区的情况(这也是生产环境中经常遇到的情况):
先使用lsblk查看系统中可使用的磁盘:

[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsr011:011024M0rom
sda8:0050G0disk
├─sda18:101G0part/boot
├─sda28:202G0part[SWAP]
└─sda38:3047G0part/
sdb8:1602T0disk123456789123456789

这时系统里有一个sdb的磁盘,容量为2TB。

[root@localhost~]#parted/dev/sdb(parted)mklabelgpt#将MBR磁盘格式化为GPT(parted)mkpartprimary0-1#将整块磁盘划分为一个分区警告:Theresultingpartitionisnotproperly
alignedforbestperformance.
忽略/Ignore/放弃/Cancel?I#忽略警告(parted)p#打印当前分区Model:ATAVBoxHARDdisK(scsi)
disk/dev/sdb:2199GB
Sectorsize(logical/physical):512B/512B
PartitionTable:gpt

NumberStartEndSizefilesystemName标志117.4kB2199GB2199GBprimary

(parted)quit#退出信息:Youmayneedtoupdate/etc/fstab.12345678910111213141516171234567891011121314151617

再使用lsblk查看磁盘分区情况:

11024M0rom
sda8:0050G0disk
├─sda18:101G0part/boot
├─sda28:202G0part[SWAP]
└─sda38:3047G0part/
sdb8:1602T0disk
└─sdb18:1702T0part12345671234567

格式化并挂载磁盘:

mkfs.ext4/dev/sdb1
mount/dev/sdb1/mnt1212

[root@localhost~]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/sda347G851M43G2%/tmpfs939M0939M0%/dev/shm/dev/sda1976M56M870M6%/boot/dev/sdb12.0T71M1.9T1%/mnt123456123456

OK!问题2完美解决!

CentOS分区大于2TB的磁盘以及格式化大于16TB分区的解决方案的更多相关文章

  1. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  2. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  3. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  4. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  5. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  6. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  7. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  8. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

  9. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  10. Swift 3 dev快照中的POST请求给出了“对成员’dataTask的模糊引用(with:completionHandler :)’

    编辑:我注意到有人在我之后写了这个问题的副本.这里的答案是更好的答案.使用URLRequest结构.在Xcode8中工作正常:另外,出现此错误的原因是URLSessionAPI具有相同的名称方法,但每个都采用不同的参数.因此,如果没有明确的演员,API将会混淆.我认为这是API的命名错误.发生此问题,代码如下:

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部