首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在线新增磁盘和扩容文件系统

在线新增磁盘和扩容文件系统

原创
作者头像
skystone
发布2025-11-23 17:43:02
发布2025-11-23 17:43:02
460
举报
文章被收录于专栏:Linux DocLinux Doc

1. 新建raid

适用于LSI MegaRAID。storcli64命令官网即可下载。

(1)删除全局热备

代码语言:shell
复制
    /opt/MegaRAID/storcli/storcli64 /c0/e252/s5 delete hotsparedrive
    /opt/MegaRAID/storcli/storcli64 /c0 show

(2)新建raid1

代码语言:shell
复制
    /opt/MegaRAID/storcli/storcli64 /c0 add vd r1 drives=252:5-6
    /opt/MegaRAID/storcli/storcli64 /c0 show

(3)初始化raid vd

代码语言:shell
复制
    /opt/MegaRAID/storcli/storcli64 /c0/v2 start init

(4)检查初始化

代码语言:shell
复制
    /opt/MegaRAID/storcli/storcli64 /c0/v2 show init

(5)强制一致性校验

代码语言:shell
复制
    /opt/MegaRAID/storcli/storcli64 /c0/v2 start cc force

2. 格式化新的磁盘设备

2.1. 小于2TB的磁盘

fdisk工具格式化即可。

2.1.1. 格式化新的磁盘设备(非SSD)

如果不特殊指定起始点,默认为63 sector之后的位置开始。非SSD磁盘,没关系,不需要4KB对齐。

默认单位查看,

代码语言:shell
复制
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1       72809   584838261   8e  Linux LVM

切换单位为sector后查看,

使用u来切换,

代码语言:shell
复制
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1              63  1169676584   584838261   8e  Linux LVM
2.1.2. 格式化新的磁盘设备(SSD)

SSD需要4K对齐。

所谓4k对齐,也是保证逻辑扇区和物理扇区对齐,SSD物理扇区一般都是4096bytes。而centos逻辑扇区是512bytes,为了写入效率,在分区时跳过前面4KB倍数的空间,一般是2048扇区,也就是1MB。在分区时,加一个u参数,就是更改操作分区计量单位为扇区,这样方便。

CentOS6需要手动设置分区起始点来实现4KB对齐,CentOS7会自动4KB对齐。

2.1.2.1. CentOS 6

样例如下:主要是u这个命令,将单位切换为扇区。

代码语言:shell
复制
    # fdisk /dev/sdc
    The device presents a logical sector size that is smaller than
    the physical sector size. Aligning to a physical sector (or optimal
    I/O) size boundary is recommended, or performance may be impacted.
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
    switch off the mode (command 'c') and change display units to
    sectors (command 'u').
    Command (m for help): c
    DOS Compatibility flag is not set
    Command (m for help): u
    Changing display/entry units to sectors
    Command (m for help): n
    Command action
    e   extended
    p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First sector (2048-935544831, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-935544831, default 935544831):
    Using default value 935544831
    Command (m for help): p
    Disk /dev/sdc: 479.0 GB, 478998953984 bytes
    255 heads, 63 sectors/track, 58234 cylinders, total 935544832 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk identifier: 0x22104654
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1            2048   935544831   467771392   83  Linux
CentOS 7

样例如下:

代码语言:shell
复制
    # fdisk /dev/sde
    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。

    Device does not contain a recognized partition table
    使用磁盘标识符 0x5627695c 创建新的 DOS 磁盘标签。

    The device presents a logical sector size that is smaller than
    the physical sector size. Aligning to a physical sector (or optimal
    I/O) size boundary is recommended, or performance may be impacted.

    命令(输入 m 获取帮助):p

    磁盘 /dev/sde:479.6 GB, 479559942144 字节,936640512 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 4096 字节
    I/O 大小(最小/最佳):262144 字节 / 262144 字节
    磁盘标签类型:dos
    磁盘标识符:0x5627695c

    设备 Boot      Start         End      Blocks   Id  System

    命令(输入 m 获取帮助):n
    Partition type:
    p   primary (0 primary, 0 extended, 4 free)
    e   extended
    Select (default p): p
    分区号 (1-4,默认 1):1
    起始 扇区 (2048-936640511,默认为 2048):
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-936640511,默认为 936640511):
    将使用默认值 936640511
    分区 1 已设置为 Linux 类型,大小设为 446.6 GiB

    命令(输入 m 获取帮助):p

    磁盘 /dev/sde:479.6 GB, 479559942144 字节,936640512 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 4096 字节
    I/O 大小(最小/最佳):262144 字节 / 262144 字节
    磁盘标签类型:dos
    磁盘标识符:0x5627695c

    设备 Boot      Start         End      Blocks   Id  System
    /dev/sde1            2048   936640511   468319232   83  Linux

    命令(输入 m 获取帮助):t
    已选择分区 1
    Hex 代码(输入 L 列出所有代码):8e
    已将分区“Linux”的类型更改为“Linux LVM”

    命令(输入 m 获取帮助):p

    磁盘 /dev/sde:479.6 GB, 479559942144 字节,936640512 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 4096 字节
    I/O 大小(最小/最佳):262144 字节 / 262144 字节
    磁盘标签类型:dos
    磁盘标识符:0x5627695c

    设备 Boot      Start         End      Blocks   Id  System
    /dev/sde1            2048   936640511   468319232   8e  Linux LVM

    命令(输入 m 获取帮助):w
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    正在同步磁盘。
2.2. 超过2TB的磁盘

parted工具分区,可以自动对齐。

格式化新的磁盘设备(非SSD)和格式化新的磁盘设备(SSD)是一样的。

2.2.1. CentOS 6

精确指定起始位置。

代码语言:shell
复制
    # parted /dev/sdc
    GNU Parted 2.1
    使用 /dev/sdc
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) mktable                                                          
    新的磁盘标签类型? gpt                                                    
    (parted) print                                                            
    Model: LSI LSI (scsi)
    Disk /dev/sdc: 2398GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt

    Number  Start  End  Size  File system  Name  标志


    (parted) mkpart                                                          
    分区名称?  []?                                                           
    文件系统类型?  [ext2]? ext4                                              
    起始点? 2048s                                                            
    结束点? 100%                                                             
    (parted) print                                                            
    Model: LSI LSI (scsi)
    Disk /dev/sdc: 2398GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt

    Number  Start   End     Size    File system  Name  标志
    1      1049kB  2398GB  2398GB

    --------------
    设置一下name
    (parted) name 1 sasdata 
    (parted) print                                                            
    Model: LSI LSI (scsi)
    Disk /dev/sdc: 2398GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt

    Number  Start   End     Size    File system  Name     标志
    1      1049kB  2398GB  2398GB               sasdata  lvm

或者,使用0%来自动选取起始位置。

代码语言:shell
复制
    # parted /dev/sdd
    GNU Parted 2.1
    使用 /dev/sdd
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)                                                                  
    (parted) mktable gpt                                                      
    (parted) mkpart                                                           
    分区名称?  []?                                                           
    文件系统类型?  [ext2]? ext4                                              
    起始点? 0%                                                               
    结束点? 100%                                                             
    (parted) p                                                                
    Model: up updisk (scsi)
    Disk /dev/sdd: 2199GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size    File system  Name  标志
    1      1049kB  2199GB  2199GB

    (parted) toggle 1 lvm                                                     
    (parted) p                                                                
    Model: up updisk (scsi)
    Disk /dev/sdd: 2199GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number  Start   End     Size    File system  Name  标志
    1      1049kB  2199GB  2199GB                     lvm

    (parted) quit                                                             
    信息: You may need to update /etc/fstab. 
2.2.2. CentOS 7

同7一样的。

代码语言:shell
复制
    parted /dev/sdb
    (parted)mktable GPT
    (parted)mkpart data 0% 100%
    (parted)toggle 1 lvm
    (parted)quit
2.3. 重新扫描磁盘

命令如下:

代码语言:shell
复制
    partprobe

4. 新建文件系统

4.1. 新建LV

(1)检查lv

代码语言:shell
复制
    lvdisplay

(2)检查vg

代码语言:shell
复制
    vgdisplay

(3)检查pv

代码语言:shell
复制
    pvdisplay

(4)创建pv

代码语言:shell
复制
    pvcreate /dev/sdc1

(5)创建vg

代码语言:shell
复制
    vgcreate vg_data /dev/sdc1

(6)检查vg

代码语言:shell
复制
    vgdisplay    

(7)创建lv

代码语言:shell
复制
    lvcreate -l 100%VG -n lv_data vg_data

(8)检查lv

代码语言:shell
复制
    lvdisplay
4.2. 新建文件系统

超过16T的单盘,不能用ext4,只能用xfs。

4.2.1. 文件系统为ext4格式

(1)使用mkfs.ext4在线新建文件系统。

代码语言:shell
复制
    mkfs.ext4 /dev/vg_data/lv_data

(2)检查文件系统是否扩容完成

代码语言:shell
复制
    df -h
4.2.2. 文件系统为xfs格式

(1)使用mkfs.xfs在线新建文件系统。

代码语言:shell
复制
    mkfs.xfs /dev/vg_data/lv_data

如果是直接对磁盘进行xfs格式化,则执行:

代码语言:shell
复制
    mkfs.xfs -f /dev/sdc

(2)检查文件系统是否扩容完成

代码语言:shell
复制
    df -h

5. 扩容文件系统

5.1. 扩容vg和lv

(1)检查lv

代码语言:shell
复制
    lvdisplay

(2)检查vg

代码语言:shell
复制
    vgdisplay

(3)检查pv

代码语言:shell
复制
    pvdisplay

(4)创建pv

代码语言:shell
复制
    pvcreate /dev/sdc1

(5)扩展vg

代码语言:shell
复制
    vgextend vg_data /dev/sdc1

(6)检查vg

代码语言:shell
复制
    vgdisplay

(7)扩展lv

代码语言:shell
复制
    lvextend -l +100%FREE /dev/vg_data/lv_data01

(8)检查lv

代码语言:shell
复制
    lvdisplay
5.2. 扩容文件系统
5.2.1. 文件系统为ext4格式

(1)使用resize2fs在线扩容。

代码语言:shell
复制
    resize2fs /dev/vg_data/lv_data01

(2)检查文件系统是否扩容完成

代码语言:shell
复制
    df -h
5.2.2. 文件系统为xfs格式

(1)使用xfs_grow在线扩容。

代码语言:shell
复制
    xfs_growfs /dev/vg_ssddata/lv_ssddata01

(2)检查文件系统是否扩容完成

代码语言:shell
复制
    df -h

6. 检查修复文件系统

6.1. 前提

需要在卸载状态下才能执行fsck命令。

6.2. ext4文件系统
代码语言:shell
复制
    e2fsck /dev/mapper/vgmail-mail 
6.3. xfs文件系统

(1)只检查不修复

代码语言:shell
复制
    xfs_repair -n /dev/mapper/vg_os-lv_home

(2)检查修复

代码语言:shell
复制
    xfs_repair /dev/mapper/vg_os-lv_home

(3)清空log修复(最后一招)

代码语言:shell
复制
    xfs_repair -L /dev/mapper/vg_os-lv_home

7. 调整和查看文件系统参数

7.1. ext4文件系统
代码语言:shell
复制
    tune2fs -l /dev/mapper/vg_ssd_data-lv_data
7.2. xfs文件系统

查看xfs_info

代码语言:shell
复制
    # xfs_info /dev/mapper/vg_ssddata-lv_ssddata01
    meta-data=/dev/mapper/vg_ssddata-lv_ssddata01 isize=512    agcount=16, agsize=7317376 blks
            =                       sectsz=4096  attr=2, projid32bit=1
            =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=117078016, imaxpct=25
            =                       sunit=64     swidth=64 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=57167, version=2
            =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0

或者

代码语言:shell
复制
# xfs_db -r /dev/mapper/vg_ssddata-lv_ssddata01
xfs_db> sb
xfs_db> p

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 新建raid
  • 2. 格式化新的磁盘设备
    • 2.1. 小于2TB的磁盘
      • 2.1.1. 格式化新的磁盘设备(非SSD)
      • 2.1.2. 格式化新的磁盘设备(SSD)
    • 2.2. 超过2TB的磁盘
      • 2.2.1. CentOS 6
      • 2.2.2. CentOS 7
    • 2.3. 重新扫描磁盘
  • 4. 新建文件系统
    • 4.1. 新建LV
    • 4.2. 新建文件系统
      • 4.2.1. 文件系统为ext4格式
      • 4.2.2. 文件系统为xfs格式
  • 5. 扩容文件系统
    • 5.1. 扩容vg和lv
    • 5.2. 扩容文件系统
      • 5.2.1. 文件系统为ext4格式
      • 5.2.2. 文件系统为xfs格式
  • 6. 检查修复文件系统
    • 6.1. 前提
    • 6.2. ext4文件系统
    • 6.3. xfs文件系统
  • 7. 调整和查看文件系统参数
    • 7.1. ext4文件系统
    • 7.2. xfs文件系统
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档