活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

CentOS 65磁盘分区详细教程从基础到进阶的系统分区方法与实战案例助你快速上手解决实际问题

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-17 00:30:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 引言

CentOS 6.5作为一款稳定可靠的企业级Linux发行版,广泛应用于服务器环境。合理的磁盘分区是系统稳定运行、性能优化和数据安全的基础。本文将详细介绍CentOS 6.5系统中的磁盘分区知识,从基础概念到进阶技术,通过丰富的实战案例帮助读者掌握磁盘分区的核心技能,解决实际工作中遇到的各种问题。

2. 磁盘分区基础知识

2.1 什么是磁盘分区

磁盘分区是将物理硬盘划分为多个独立区域的过程,每个分区可以被视为独立的磁盘,用于安装操作系统、存储数据或特定用途。分区的主要目的是:

• 数据组织与管理:将不同类型的数据分开存储,便于管理和维护
• 性能优化:针对不同类型的数据采用不同的存储策略,提高系统性能
• 安全性:隔离系统与用户数据,降低系统故障对数据的影响
• 多系统安装:允许在同一台计算机上安装多个操作系统

2.2 分区类型

在传统的MBR(Master Boot Record)分区表中,有三种基本的分区类型:

• 主分区是硬盘上可以直接使用的分区
• 一块硬盘最多可以有4个主分区
• 主分区可以直接安装操作系统,并设置为活动分区以引导系统

• 扩展分区是一种特殊的主分区,本身不能直接存储数据
• 扩展分区可以划分为多个逻辑分区
• 一个硬盘只能有一个扩展分区
• 扩展分区主要用于突破4个主分区的限制

• 逻辑分区是在扩展分区内创建的分区
• 逻辑分区的数量没有固定限制(受系统支持能力影响)
• 逻辑分区不能直接用于系统引导

2.3 文件系统介绍

文件系统是操作系统用于明确存储设备(如硬盘、U盘等)或分区上的文件的方法和数据结构。CentOS 6.5支持多种文件系统,常见的有:

• CentOS 6.5的默认文件系统
• 支持最大1EB的文件系统和16TB的文件
• 具有日志功能,提高了文件系统的可靠性
• 支持快速文件系统检查和碎片整理

• ext4的前身,具有较好的兼容性
• 支持最大32TB的文件系统和2TB的文件
• 同样具有日志功能

• 高性能的日志文件系统
• 特别适合处理大文件
• 支持在线调整文件系统大小
• 适合需要高吞吐量的应用场景

• 交换分区,用于虚拟内存
• 当物理内存不足时,系统会将部分数据暂时存储到swap分区
• 通常建议大小为物理内存的1-2倍

2.4 分区命名规则

在Linux系统中,分区命名遵循一定的规则:

• IDE硬盘:/dev/hda, /dev/hdb, …分区:/dev/hda1, /dev/hda2, …
• 分区:/dev/hda1, /dev/hda2, …
• SCSI/SATA硬盘:/dev/sda, /dev/sdb, …分区:/dev/sda1, /dev/sdb2, …
• 分区:/dev/sda1, /dev/sdb2, …
• 逻辑分区从5开始编号,如/dev/sda5, /dev/sda6, …

• 分区:/dev/hda1, /dev/hda2, …

• 分区:/dev/sda1, /dev/sdb2, …

3. 磁盘分区规划原则

合理的分区规划对系统性能、稳定性和数据安全至关重要。以下是CentOS 6.5系统中常见的分区规划原则:

3.1 根分区(/)规划

根分区是整个文件系统的起点,包含系统核心文件和目录。

• 最小安装:约5GB
• 基本安装:10-15GB
• 完整安装:20GB或更多

• 系统用途:服务器系统通常需要比桌面系统更大的根分区
• 软件安装:安装大量软件会增加根分区使用空间
• 系统更新:系统更新会占用额外空间
• 日志文件:系统日志存储在/var目录下,如果/var不单独分区,会占用根分区空间

3.2 /home分区规划

/home分区用于存储用户数据和配置文件。

• 根据用户数量和数据量确定
• 单用户系统:10-50GB
• 多用户系统:每个用户5-20GB,乘以用户数量
• 文件服务器:尽可能大的空间

• 用户数量:用户越多,需要的空间越大
• 数据类型:文档、图片、视频等不同类型数据占用空间不同
• 数据备份:考虑备份策略和存储需求
• 用户配额:是否需要实施磁盘配额限制

3.3 /boot分区规划

/boot分区存储系统引导所需的文件,包括内核、initrd和引导程序配置文件。

• 传统系统:100-200MB
• 现代系统:200-500MB
• 如果计划安装多个内核:500MB或更多

• 内核大小:现代内核较大,需要更多空间
• 内核更新:保留旧内核需要额外空间
• 引导程序:GRUB等引导程序需要空间存储配置文件
• 特殊硬件:某些硬件可能需要特殊的引导模块

3.4 swap分区规划

swap分区用作虚拟内存,当物理内存不足时使用。

• 物理内存 < 2GB:swap大小 = 2 × 物理内存
• 物理内存 2-8GB:swap大小 = 物理内存
• 物理内存 > 8GB:swap大小 = 8GB或至少4GB
• 服务器系统:根据应用需求可能需要更大的swap

• 内存需求:内存密集型应用可能需要更多swap
• 休眠功能:如果需要休眠功能,swap大小应至少等于物理内存
• 性能考虑:swap使用过多会影响系统性能
• 多swap分区:可以在多个磁盘上创建swap分区以提高性能

3.5 其他特殊分区规划

根据系统用途,可能需要创建其他特殊分区:

/var分区用于存储经常变化的数据,如日志、缓存和临时文件。

• 大小建议:5-20GB,根据系统用途调整
• 适用场景:邮件服务器、Web服务器、打印服务器等

/tmp分区用于存储临时文件。

• 大小建议:1-5GB
• 安全考虑:可以设置noexec和nosuid选项提高安全性

/usr分区用于存储用户程序和静态数据。

• 大小建议:10-30GB,根据安装的软件数量调整
• 适用场景:需要大量软件的系统

/opt分区用于安装第三方软件。

• 大小建议:5-20GB,根据需要安装的软件大小调整
• 适用场景:需要安装大型商业软件的系统

4. 磁盘分区工具介绍

CentOS 6.5提供了多种磁盘分区工具,每种工具都有其特点和适用场景。

4.1 fdisk

fdisk是最常用的磁盘分区工具之一,适用于MBR分区表。

• 支持创建、删除和修改分区
• 仅支持MBR分区表
• 命令行界面,操作简单直观
• 适合基本分区操作
  1. # 启动fdisk
  2. fdisk /dev/sda
  3. # 常用命令
  4. m - 显示帮助菜单
  5. p - 显示当前分区表
  6. n - 创建新分区
  7. d - 删除分区
  8. t - 更改分区类型
  9. w - 保存更改并退出
  10. q - 不保存更改退出
复制代码

4.2 parted

parted是功能更强大的分区工具,支持MBR和GPT分区表。

• 支持MBR和GPT分区表
• 支持大于2TB的磁盘
• 可以调整分区大小
• 命令行和交互式界面
  1. # 启动parted
  2. parted /dev/sda
  3. # 常用命令
  4. help - 显示帮助
  5. print - 显示分区表
  6. mklabel - 创建分区表(gpt或msdos)
  7. mkpart - 创建新分区
  8. rm - 删除分区
  9. resize - 调整分区大小
  10. quit - 退出parted
复制代码

4.3 LVM(逻辑卷管理)

LVM(Logical Volume Manager)是一种高级存储管理技术,提供了更灵活的磁盘管理方式。

• 物理卷(PV):物理磁盘或分区
• 卷组(VG):由一个或多个物理卷组成
• 逻辑卷(LV):在卷组上创建的逻辑分区

• 灵活性:可以动态调整逻辑卷大小
• 可扩展性:可以轻松添加新的物理卷到卷组
• 快照:支持创建逻辑卷快照
• 易于管理:提供高级管理功能
  1. # 物理卷管理
  2. pvcreate /dev/sda1      # 创建物理卷
  3. pvdisplay               # 显示物理卷信息
  4. pvscan                  # 扫描系统中的物理卷
  5. # 卷组管理
  6. vgcreate vg0 /dev/sda1  # 创建卷组
  7. vgdisplay               # 显示卷组信息
  8. vgextend vg0 /dev/sdb1  # 扩展卷组
  9. # 逻辑卷管理
  10. lvcreate -L 10G -n lv0 vg0  # 创建逻辑卷
  11. lvdisplay                   # 显示逻辑卷信息
  12. lvextend -L +5G /dev/vg0/lv0  # 扩展逻辑卷
  13. lvreduce -L -5G /dev/vg0/lv0  # 缩减逻辑卷
复制代码

5. 基础分区实战

本节将通过实际操作演示如何使用fdisk进行磁盘分区,格式化分区,以及挂载分区。

5.1 使用fdisk进行分区

假设我们有一块新的硬盘/dev/sdb,需要对其进行分区。
  1. # 查看系统中的磁盘
  2. fdisk -l
  3. # 查看特定磁盘
  4. fdisk -l /dev/sdb
复制代码
  1. fdisk /dev/sdb
复制代码

在fdisk交互界面中:
  1. Command (m for help): n
  2. Command action
  3.    e   extended
  4.    p   primary partition (1-4)
  5. p
  6. Partition number (1-4): 1
  7. First cylinder (1-652, default 1):
  8. Using default value 1
  9. Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +10G
复制代码
  1. Command (m for help): n
  2. Command action
  3.    e   extended
  4.    p   primary partition (1-4)
  5. e
  6. Partition number (1-4): 2
  7. First cylinder (1307-652, default 1307):
  8. Using default value 1307
  9. Last cylinder, +cylinders or +size{K,M,G} (1307-652, default 652):
  10. Using default value 652
  11. Command (m for help): n
  12. Command action
  13.    l   logical (5 or over)
  14.    p   primary partition (1-4)
  15. l
  16. First cylinder (1307-652, default 1307):
  17. Using default value 1307
  18. Last cylinder, +cylinders or +size{K,M,G} (1307-652, default 652): +5G
复制代码
  1. Command (m for help): t
  2. Partition number (1-5): 5
  3. Hex code (type L to list codes): 82
  4. Changed system type of partition 5 to 82 (Linux swap / Solaris)
复制代码
  1. Command (m for help): w
  2. The partition table has been altered!
  3. Calling ioctl() to re-read partition table.
  4. Syncing disks.
复制代码
  1. partprobe /dev/sdb
复制代码

5.2 格式化分区

创建分区后,需要格式化分区才能使用。
  1. # 格式化主分区
  2. mkfs.ext4 /dev/sdb1
  3. # 格式化逻辑分区
  4. mkfs.ext4 /dev/sdb5
复制代码
  1. # 格式化swap分区
  2. mkswap /dev/sdb6
  3. # 启用swap分区
  4. swapon /dev/sdb6
复制代码

5.3 挂载分区

格式化后,需要挂载分区才能访问。
  1. # 创建挂载点
  2. mkdir /data
  3. mkdir /backup
复制代码
  1. # 挂载分区
  2. mount /dev/sdb1 /data
  3. mount /dev/sdb5 /backup
复制代码
  1. # 查看挂载情况
  2. df -h
  3. # 查看磁盘使用情况
  4. ls -l /data
  5. ls -l /backup
复制代码

5.4 修改/etc/fstab实现自动挂载

为了使系统重启后自动挂载分区,需要修改/etc/fstab文件。
  1. # 查看分区UUID
  2. blkid /dev/sdb1
  3. blkid /dev/sdb5
复制代码
  1. # 备份fstab文件
  2. cp /etc/fstab /etc/fstab.bak
  3. # 编辑fstab文件
  4. vi /etc/fstab
复制代码

在/etc/fstab中添加以下内容:
  1. # 新增的挂载点
  2. UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data   ext4    defaults        0 0
  3. UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy /backup ext4    defaults        0 0
  4. /dev/sdb6                               swap    swap    defaults        0 0
复制代码
  1. # 检查fstab语法
  2. mount -a
  3. # 如果没有错误,重新挂载所有分区
  4. mount -o remount /
  5. # 验证挂载
  6. df -h
复制代码

6. 进阶分区技术

在掌握了基础分区技术后,我们可以学习更高级的分区技术,如LVM和RAID,以满足更复杂的存储需求。

6.1 LVM基础与优势

LVM(Logical Volume Manager)是一种灵活的存储管理技术,它提供了传统分区无法比拟的灵活性和功能。

LVM由三个层次组成:

1. 物理卷(Physical Volume, PV):可以是整个磁盘、磁盘分区或loop设备
2. 卷组(Volume Group, VG):由一个或多个物理卷组成的存储池
3. 逻辑卷(Logical Volume, LV):从卷组中划分的逻辑分区,可以格式化并挂载使用

• 灵活调整大小:可以动态调整逻辑卷大小,无需重新分区
• 空间整合:可以将多个物理磁盘整合为一个大的存储池
• 快照功能:支持创建逻辑卷的快照,用于备份或测试
• 易于管理:提供丰富的管理工具和命令
• 条带化与镜像:支持数据的条带化和镜像,提高性能和可靠性

6.2 创建LVM分区

下面演示如何创建LVM分区。
  1. # 创建物理分区(使用fdisk或parted)
  2. fdisk /dev/sdc
  3. # 在fdisk中创建分区并设置类型为8e(Linux LVM)
  4. Command (m for help): t
  5. Partition number (1-4): 1
  6. Hex code (type L to list codes): 8e
  7. Changed system type of partition 1 to 8e (Linux LVM)
  8. # 保存并退出
  9. Command (m for help): w
  10. # 刷新分区表
  11. partprobe /dev/sdc
复制代码
  1. # 创建物理卷
  2. pvcreate /dev/sdc1
  3. # 查看物理卷信息
  4. pvdisplay /dev/sdc1
复制代码
  1. # 创建卷组
  2. vgcreate vg_data /dev/sdc1
  3. # 查看卷组信息
  4. vgdisplay vg_data
复制代码
  1. # 创建逻辑卷
  2. lvcreate -L 10G -n lv_data vg_data
  3. # 查看逻辑卷信息
  4. lvdisplay /dev/vg_data/lv_data
复制代码
  1. # 格式化逻辑卷
  2. mkfs.ext4 /dev/vg_data/lv_data
  3. # 创建挂载点
  4. mkdir /lvm_data
  5. # 挂载逻辑卷
  6. mount /dev/vg_data/lv_data /lvm_data
  7. # 查看挂载情况
  8. df -h /lvm_data
复制代码
  1. # 获取逻辑卷UUID
  2. blkid /dev/vg_data/lv_data
  3. # 编辑/etc/fstab
  4. vi /etc/fstab
  5. # 添加以下行
  6. UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /lvm_data ext4 defaults 0 0
  7. # 验证fstab
  8. mount -a
复制代码

6.3 LVM分区扩容与缩减

LVM的一个主要优势是可以动态调整逻辑卷大小,下面演示如何扩容和缩减LVM分区。

假设我们需要将lv_data逻辑卷扩展到15GB。
  1. # 查看当前逻辑卷大小
  2. lvdisplay /dev/vg_data/lv_data
  3. # 扩展逻辑卷
  4. lvextend -L +5G /dev/vg_data/lv_data
  5. # 或者直接指定最终大小
  6. lvextend -L 15G /dev/vg_data/lv_data
  7. # 扩展文件系统(对于ext4)
  8. resize2fs /dev/vg_data/lv_data
  9. # 验证扩展结果
  10. df -h /lvm_data
复制代码

缩减逻辑卷操作需要谨慎,建议先备份数据。
  1. # 卸载逻辑卷
  2. umount /lvm_data
  3. # 检查文件系统
  4. e2fsck -f /dev/vg_data/lv_data
  5. # 缩减文件系统(假设缩减到10GB)
  6. resize2fs /dev/vg_data/lv_data 10G
  7. # 缩减逻辑卷
  8. lvreduce -L 10G /dev/vg_data/lv_data
  9. # 重新挂载
  10. mount /dev/vg_data/lv_data /lvm_data
  11. # 验证结果
  12. df -h /lvm_data
复制代码

如果卷组空间不足,可以添加新的物理卷来扩展卷组。
  1. # 假设有一个新的分区/dev/sdd1
  2. # 创建物理卷
  3. pvcreate /dev/sdd1
  4. # 扩展卷组
  5. vgextend vg_data /dev/sdd1
  6. # 查看扩展后的卷组
  7. vgdisplay vg_data
复制代码

6.4 RAID与分区结合

RAID(Redundant Array of Independent Disks)是一种将多个硬盘组合成一个逻辑单元的技术,可以提高性能或提供冗余。

• RAID 0:条带化,提高性能,无冗余
• RAID 1:镜像,提供冗余,需要两块磁盘
• RAID 5:条带化+奇偶校验,需要至少三块磁盘
• RAID 6:条带化+双重奇偶校验,需要至少四块磁盘
• RAID 10:RAID 1 + RAID 0的组合,需要至少四块磁盘

CentOS 6.5支持软件RAID,使用mdadm工具管理。
  1. # 安装mdadm
  2. yum install mdadm
  3. # 创建RAID 1(镜像)
  4. mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sde1 /dev/sdf1
  5. # 查看RAID状态
  6. cat /proc/mdstat
  7. mdadm --detail /dev/md0
  8. # 创建文件系统
  9. mkfs.ext4 /dev/md0
  10. # 挂载RAID设备
  11. mkdir /raid1
  12. mount /dev/md0 /raid1
  13. # 配置自动挂载
  14. echo "/dev/md0 /raid1 ext4 defaults 0 0" >> /etc/fstab
复制代码

RAID和LVM可以结合使用,先创建RAID设备,然后在RAID设备上创建LVM。
  1. # 创建RAID 5
  2. mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdg1 /dev/sdh1 /dev/sdi1
  3. # 在RAID设备上创建物理卷
  4. pvcreate /dev/md1
  5. # 创建卷组
  6. vgcreate vg_raid /dev/md1
  7. # 创建逻辑卷
  8. lvcreate -L 20G -n lv_raid vg_raid
  9. # 格式化并挂载
  10. mkfs.ext4 /dev/vg_raid/lv_raid
  11. mkdir /raid_lvm
  12. mount /dev/vg_raid/lv_raid /raid_lvm
复制代码

7. 实战案例

本节将通过几个实际案例,展示不同场景下的磁盘分区方案。

7.1 案例一:Web服务器分区方案

Web服务器通常需要处理大量静态文件和日志,合理的分区方案可以提高性能和便于管理。

• 操作系统:CentOS 6.5
• 硬盘配置:1块500GB SATA硬盘
• 主要用途:Web服务器,运行Apache/Nginx
• 预期访问量:中等,每天约10,000次访问
• 特殊需求:日志需要单独分区,便于管理和分析
  1. # 使用fdisk进行分区
  2. fdisk /dev/sda
  3. # 创建分区
  4. # 1. /boot分区 (500MB)
  5. n
  6. p
  7. 1
  8. +500M
  9. t
  10. 83
  11. # 2. swap分区 (8GB)
  12. n
  13. p
  14. 2
  15. +8G
  16. t
  17. 82
  18. # 3. /分区 (20GB)
  19. n
  20. p
  21. 3
  22. +20G
  23. t
  24. 83
  25. # 4. /var分区 (100GB)
  26. n
  27. p
  28. 4
  29. +100G
  30. t
  31. 83
  32. # 创建扩展分区
  33. n
  34. e
  35. # 5. /home分区 (50GB)
  36. n
  37. l
  38. +50G
  39. t
  40. 83
  41. # 6. /www分区 (剩余空间)
  42. n
  43. l
  44. t
  45. 83
  46. # 保存并退出
  47. w
  48. # 格式化分区
  49. mkfs.ext4 /dev/sda1
  50. mkfs.ext4 /dev/sda3
  51. mkfs.ext4 /dev/sda4
  52. mkfs.ext4 /dev/sda5
  53. mkfs.ext4 /dev/sda6
  54. mkswap /dev/sda2
  55. # 创建挂载点
  56. mkdir /www
  57. # 挂载分区
  58. mount /dev/sda1 /boot
  59. mount /dev/sda3 /
  60. mount /dev/sda4 /var
  61. mount /dev/sda5 /home
  62. mount /dev/sda6 /www
  63. swapon /dev/sda2
  64. # 配置/etc/fstab
  65. vi /etc/fstab
  66. # 添加以下内容
  67. /dev/sda1 /boot ext4 defaults 1 2
  68. /dev/sda2 swap swap defaults 0 0
  69. /dev/sda3 / ext4 defaults 1 1
  70. /dev/sda4 /var ext4 defaults 1 2
  71. /dev/sda5 /home ext4 defaults 1 2
  72. /dev/sda6 /www ext4 defaults 1 2
  73. # 验证fstab
  74. mount -a
复制代码

1. 日志轮转:配置logrotate定期清理和压缩日志文件
2. 性能优化:为/var和/www分区设置noatime选项,提高文件访问性能
3. 监控:设置磁盘空间监控,避免分区空间不足

7.2 案例二:数据库服务器分区方案

数据库服务器对I/O性能和数据安全要求较高,需要特殊的分区方案。

• 操作系统:CentOS 6.5
• 硬盘配置:4块1TB SAS硬盘,配置RAID 10
• 主要用途:MySQL数据库服务器
• 预期负载:高并发,大量读写操作
• 特殊需求:数据安全性和性能优先
  1. # 创建RAID 10
  2. mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
  3. # 查看RAID状态
  4. cat /proc/mdstat
  5. mdadm --detail /dev/md0
  6. # 使用fdisk对RAID设备进行分区
  7. fdisk /dev/md0
  8. # 创建分区
  9. # 1. /boot分区 (500MB)
  10. n
  11. p
  12. 1
  13. +500M
  14. t
  15. 83
  16. # 2. swap分区 (16GB)
  17. n
  18. p
  19. 2
  20. +16G
  21. t
  22. 82
  23. # 3. /分区 (20GB)
  24. n
  25. p
  26. 3
  27. +20G
  28. t
  29. 83
  30. # 4. /var分区 (50GB)
  31. n
  32. p
  33. 4
  34. +50G
  35. t
  36. 83
  37. # 创建扩展分区
  38. n
  39. e
  40. # 5. /home分区 (20GB)
  41. n
  42. l
  43. +20G
  44. t
  45. 83
  46. # 6. /mysql分区 (剩余空间)
  47. n
  48. l
  49. t
  50. 83
  51. # 保存并退出
  52. w
  53. # 格式化分区
  54. mkfs.ext4 /dev/md0p1
  55. mkfs.ext4 /dev/md0p3
  56. mkfs.ext4 /dev/md0p4
  57. mkfs.ext4 /dev/md0p5
  58. mkfs.ext4 /dev/md0p6
  59. mkswap /dev/md0p2
  60. # 创建挂载点
  61. mkdir /mysql
  62. # 挂载分区
  63. mount /dev/md0p1 /boot
  64. mount /dev/md0p3 /
  65. mount /dev/md0p4 /var
  66. mount /dev/md0p5 /home
  67. mount /dev/md0p6 /mysql
  68. swapon /dev/md0p2
  69. # 配置/etc/fstab
  70. vi /etc/fstab
  71. # 添加以下内容
  72. /dev/md0p1 /boot ext4 defaults 1 2
  73. /dev/md0p2 swap swap defaults 0 0
  74. /dev/md0p3 / ext4 defaults 1 1
  75. /dev/md0p4 /var ext4 defaults 1 2
  76. /dev/md0p5 /home ext4 defaults 1 2
  77. /dev/md0p6 /mysql ext4 defaults 1 2
  78. # 验证fstab
  79. mount -a
复制代码

1. 文件系统优化:为/mysql分区设置noatime和data=writeback选项,提高性能
2. I/O调度器:使用deadline或noop调度器,适合数据库工作负载
3. MySQL配置:将MySQL数据目录、日志目录和临时文件目录分别放在/mysql下的不同子目录
4. 监控:设置I/O性能监控和空间监控

7.3 案例三:文件服务器分区方案

文件服务器需要大量存储空间,并考虑数据安全和备份需求。

• 操作系统:CentOS 6.5
• 硬盘配置:1块200GB系统盘,4块2TB数据盘
• 主要用途:文件共享服务器,存储大量文档和媒体文件
• 预期存储需求:约6TB有效存储空间
• 特殊需求:数据冗余和易于扩展

系统盘(200GB):

数据盘(4块2TB,配置RAID 5 + LVM):
  1. # 使用fdisk对系统盘进行分区
  2. fdisk /dev/sda
  3. # 创建分区(省略详细步骤,参考前面的案例)
  4. # 格式化并挂载分区
  5. mkfs.ext4 /dev/sda1
  6. mkfs.ext4 /dev/sda3
  7. mkfs.ext4 /dev/sda4
  8. mkfs.ext4 /dev/sda5
  9. mkfs.ext4 /dev/sda6
  10. mkswap /dev/sda2
  11. # 创建挂载点
  12. mkdir /backup
  13. # 挂载分区
  14. mount /dev/sda1 /boot
  15. mount /dev/sda3 /
  16. mount /dev/sda4 /var
  17. mount /dev/sda5 /home
  18. mount /dev/sda6 /backup
  19. swapon /dev/sda2
  20. # 配置/etc/fstab
  21. vi /etc/fstab
  22. # 添加分区信息(省略具体内容)
  23. # 验证fstab
  24. mount -a
复制代码
  1. # 创建RAID 5
  2. mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  3. # 查看RAID状态
  4. cat /proc/mdstat
  5. mdadm --detail /dev/md0
  6. # 在RAID设备上创建LVM
  7. # 创建物理卷
  8. pvcreate /dev/md0
  9. # 创建卷组
  10. vgcreate vg_data /dev/md0
  11. # 创建逻辑卷
  12. lvcreate -L 5T -n lv_shares vg_data
  13. # 格式化逻辑卷
  14. mkfs.ext4 /dev/vg_data/lv_shares
  15. # 创建挂载点
  16. mkdir /shares
  17. # 挂载逻辑卷
  18. mount /dev/vg_data/lv_shares /shares
  19. # 配置/etc/fstab
  20. vi /etc/fstab
  21. # 添加以下内容
  22. /dev/vg_data/lv_shares /shares ext4 defaults 0 0
  23. # 验证fstab
  24. mount -a
复制代码

1. 文件系统优化:为/shares分区设置noatime选项,提高大文件访问性能
2. 配额管理:为用户设置磁盘配额,防止单个用户占用过多空间
3. 定期备份:配置定期备份策略,将重要数据备份到/backup分区
4. 监控:设置磁盘空间监控和RAID状态监控

7.4 案例四:虚拟化环境分区方案

虚拟化环境对存储性能和灵活性要求较高,需要特殊的分区方案。

• 操作系统:CentOS 6.5 + KVM
• 硬盘配置:2块300GB SSD(系统盘),4块1TB SAS(存储盘)
• 主要用途:KVM虚拟化主机,运行多个虚拟机
• 预期负载:中等,约10-20个虚拟机
• 特殊需求:高性能存储,灵活的存储管理

系统盘(2块300GB SSD,配置RAID 1):

存储盘(4块1TB SAS,配置RAID 10 + LVM):
  1. # 创建RAID 1
  2. mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
  3. # 查看RAID状态
  4. cat /proc/mdstat
  5. mdadm --detail /dev/md0
  6. # 使用fdisk对RAID设备进行分区
  7. fdisk /dev/md0
  8. # 创建分区(省略详细步骤,参考前面的案例)
  9. # 格式化并挂载分区
  10. mkfs.ext4 /dev/md0p1
  11. mkfs.ext4 /dev/md0p3
  12. mkfs.ext4 /dev/md0p4
  13. mkfs.ext4 /dev/md0p5
  14. mkswap /dev/md0p2
  15. # 挂载分区
  16. mount /dev/md0p1 /boot
  17. mount /dev/md0p3 /
  18. mount /dev/md0p4 /var
  19. mount /dev/md0p5 /home
  20. swapon /dev/md0p2
  21. # 配置/etc/fstab
  22. vi /etc/fstab
  23. # 添加分区信息(省略具体内容)
  24. # 验证fstab
  25. mount -a
复制代码
  1. # 创建RAID 10
  2. mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf
  3. # 查看RAID状态
  4. cat /proc/mdstat
  5. mdadm --detail /dev/md1
  6. # 在RAID设备上创建LVM
  7. # 创建物理卷
  8. pvcreate /dev/md1
  9. # 创建卷组
  10. vgcreate vg_vm /dev/md1
  11. # 创建逻辑卷
  12. lvcreate -L 1.5T -n lv_images vg_vm
  13. lvcreate -L 500G -n lv_backup vg_vm
  14. # 格式化逻辑卷
  15. mkfs.ext4 /dev/vg_vm/lv_images
  16. mkfs.ext4 /dev/vg_vm/lv_backup
  17. # 创建挂载点
  18. mkdir /vm-images
  19. mkdir /vm-backup
  20. # 挂载逻辑卷
  21. mount /dev/vg_vm/lv_images /vm-images
  22. mount /dev/vg_vm/lv_backup /vm-backup
  23. # 配置/etc/fstab
  24. vi /etc/fstab
  25. # 添加以下内容
  26. /dev/vg_vm/lv_images /vm-images ext4 defaults 0 0
  27. /dev/vg_vm/lv_backup /vm-backup ext4 defaults 0 0
  28. # 验证fstab
  29. mount -a
复制代码

1. 文件系统优化:为/vm-images分区设置noatime和data=writeback选项,提高虚拟机磁盘性能
2. I/O调度器:使用noop或deadline调度器,适合虚拟化环境
3. KVM存储池:配置KVM使用/vm-images作为默认存储池
4. 快照管理:利用LVM快照功能为虚拟机创建快照
5. 监控:设置I/O性能监控和空间监控

8. 分区常见问题与解决方案

在磁盘分区和管理过程中,可能会遇到各种问题。本节将介绍一些常见问题及其解决方案。

8.1 空间不足问题

某个分区空间不足,导致系统或应用程序无法正常运行。
  1. # 查找大文件
  2. find / -type f -size +100M -exec ls -lh {} \;
  3. # 清理旧日志
  4. find /var/log -type f -name "*.gz" -delete
  5. find /var/log -type f -name "*.old" -delete
  6. # 清理软件包缓存
  7. yum clean all
复制代码
  1. # 扩展逻辑卷
  2. lvextend -L +5G /dev/vg_data/lv_data
  3. # 扩展文件系统
  4. resize2fs /dev/vg_data/lv_data
复制代码
  1. # 例如,将/home下的数据移动到新分区
  2. # 创建新分区并挂载到/home_new
  3. mount /dev/sdb1 /home_new
  4. # 复制数据
  5. cp -a /home/* /home_new/
  6. # 重命名原目录
  7. mv /home /home_old
  8. # 创建新挂载点
  9. mkdir /home
  10. # 重新挂载
  11. umount /home_new
  12. mount /dev/sdb1 /home
  13. # 更新/etc/fstab
复制代码

8.2 分区表损坏问题

分区表损坏导致系统无法识别分区或无法启动。
  1. # 安装testdisk
  2. yum install testdisk
  3. # 运行testdisk
  4. testdisk /dev/sda
  5. # 按照提示进行分析和修复
复制代码
  1. # 启动fdisk
  2. fdisk /dev/sda
  3. # 使用p命令查看现有分区(如果可见)
  4. # 记录分区的起始和结束扇区
  5. # 重新创建分区(确保参数与原来一致)
  6. n
  7. p
  8. 1
  9. (输入起始扇区)
  10. (输入结束扇区)
  11. # 保存并退出
  12. w
复制代码

如果有分区表的备份,可以从备份恢复:
  1. # 备份分区表
  2. dd if=/dev/sda of=/root/partition_table.bak bs=512 count=1
  3. # 恢复分区表
  4. dd if=/root/partition_table.bak of=/dev/sda bs=512 count=1
复制代码

8.3 性能优化问题

磁盘I/O性能不佳,影响系统整体性能。
  1. # 编辑/etc/fstab
  2. vi /etc/fstab
  3. # 修改挂载选项,例如:
  4. /dev/sda1 /data ext4 defaults,noatime,data=writeback 0 0
  5. # 重新挂载
  6. mount -o remount /data
复制代码
  1. # 查看当前调度器
  2. cat /sys/block/sda/queue/scheduler
  3. # 临时更改调度器
  4. echo noop > /sys/block/sda/queue/scheduler
  5. # 永久更改(编辑/etc/rc.local)
  6. echo 'echo noop > /sys/block/sda/queue/scheduler' >> /etc/rc.local
  7. chmod +x /etc/rc.local
复制代码
  1. # 创建RAID 0(条带化,提高性能)
  2. mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
  3. # 创建文件系统并挂载
  4. mkfs.ext4 /dev/md0
  5. mkdir /raid0
  6. mount /dev/md0 /raid0
复制代码
  1. # 调整文件系统参数
  2. tune2fs -o journal_data_writeback /dev/sda1
  3. tune2fs -O ^has_journal /dev/sda1  # 禁用日志(慎用)
复制代码

8.4 LVM相关问题

LVM逻辑卷无法激活或卷组无法访问。
  1. # 扫描物理卷
  2. pvscan
  3. # 激活卷组
  4. vgchange -ay
  5. # 激活逻辑卷
  6. lvchange -ay /dev/vg_data/lv_data
复制代码
  1. # 备份当前配置
  2. vgcfgbackup vg_data
  3. # 恢复配置
  4. vgcfgrestore vg_data
  5. # 激活卷组
  6. vgchange -ay vg_data
复制代码
  1. # 从卷组中移除故障物理卷
  2. vgreduce --removemissing vg_data
  3. # 如果有冗余,修复逻辑卷
  4. lvconvert --repair /dev/vg_data/lv_data
复制代码

9. 总结与最佳实践

本文详细介绍了CentOS 6.5系统中的磁盘分区知识,从基础概念到进阶技术,通过丰富的实战案例帮助读者掌握磁盘分区的核心技能。以下是一些总结和最佳实践建议:

9.1 分区规划最佳实践

1. 分离系统与数据:将系统文件和用户数据分开存储,便于管理和备份
2. 合理分配空间:根据系统用途和预期负载合理分配各分区空间
3. 预留扩展空间:为关键分区预留一定的扩展空间,或使用LVM以便于扩展
4. 考虑特殊需求:根据应用的特殊需求(如数据库、虚拟化)进行专门优化
5. 使用独立分区:对于频繁变化的目录(如/var、/tmp)使用独立分区

9.2 分区工具选择建议

1. 简单分区:使用fdisk,适合基本的MBR分区操作
2. 大磁盘或GPT:使用parted,支持大于2TB的磁盘和GPT分区表
3. 灵活管理:使用LVM,提供动态调整大小和快照功能
4. 高可靠性:使用RAID,提供数据冗余或性能提升

9.3 性能优化建议

1. 文件系统选择:根据应用场景选择合适的文件系统(如ext4、xfs)
2. 挂载选项优化:使用noatime、data=writeback等选项提高性能
3. I/O调度器调整:根据工作负载选择合适的I/O调度器
4. RAID配置:根据需求选择合适的RAID级别
5. 监控与调整:定期监控磁盘性能,根据需要进行调整

9.4 安全与备份建议

1. 定期备份:制定并执行定期备份策略
2. 分区表备份:备份分区表以便在损坏时恢复
3. LVM快照:利用LVM快照功能进行快速备份
4. 权限控制:合理设置分区和目录权限
5. 监控告警:设置磁盘空间和健康状态监控告警

通过遵循这些最佳实践,可以确保CentOS 6.5系统的磁盘分区方案既满足当前需求,又具备足够的灵活性和可扩展性,以应对未来的变化和挑战。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则