大磁盘分区格式化XFS文件系统

1、EXT文件系统限制

线上的kafka机器配置为12快盘做raid10,约24T。用mkfs.ext4格式化磁盘时,出现以下错误。

mkfs.ext4: Size of device /dev/iscsi/test too big to be expressed in 32 bit susing a blocksize of 4096.

对于64位系统,理论上EXT4文件系统支持单分区最大上线为1EiB(1024TB)。实际mkfs.ext4发现最大支持的分区只有16TB,主要原因文件系统工具仍然是32为系统模式。借鉴MySQL的Flash卡使用XFS系统使用经验,决定放弃EXT4而使用XFS文件系统。大盘的格盘和挂载的步骤如下,磁盘卷为/dev/sdb,格式化为一个主分区,使用GPT分区。
另外,挂载磁盘时使用noatime,nodiratime等优化参数。

2、XFS格式化脚本

#!/bin/env bash

## parted disk ##
yum install -y xfsprogs kmod-xfs xfsdump xfsprogs-devel
modprobe xfs
lsmod |grep xfs
umount /dev/sdb1
echo "cleaning /dev/sdb ..."
parted /dev/sdb --script rm 1
echo "formating /dev/sdb ..."
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary 0% 100%
sleep 3

## format ##
if [ -b /dev/sdb ];then
  echo "formating /dev/sdb ... "
  mkfs.xfs -f -i attr=2 -l size=128m,lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L data /dev/sdb1
fi
sleep 3

## mount ##
mkdir -p  /dbdat
echo "/dev/sdb1               /dbdat             xfs     rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc     0 0" >> /etc/fstab
mount -a

3、延伸阅读
[1] Formatting Ext4 volumes beyond the 16TB limit
[2] What are the file and file system size limitations for Red Hat Enterprise Linux?

4、磁盘挂在错误
mount挂载磁盘是提示“mount: Structure needs cleaning”。
使用 “xfs_repair -L /dev/sdb1″修复所挂在的分区。


此条目发表在os/linux分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>