详解磁盘、卷和分区

911 阅读4分钟

磁盘分区这几个术语与操作系统中存储的管理和组织方式有关,但它们指的是存储层次结构中的不同概念。下面对每个术语进行了解释,包括它们之间的关系。

1.磁盘

磁盘指物理存储设备。它可以是硬盘驱动器 (HDD)固态驱动器 (SSD) 或其他形式的存储设备(例如 USB 闪存驱动器)。磁盘存储数据,可以包含一个或多个分区或卷。

  • 特征

    • 磁盘是通过 SATA、SCSI 或 NVMe 等接口连接到计算机的硬件。
    • 磁盘默认是非结构化的;需要进行分区和格式化才能有组织地存储数据。
    • Linux中常见的表示形式:/dev/sda/dev/sdb/dev/nvme0n1
  • 例子

    • /dev/sda:代表系统中的第一个磁盘。

2.分区

分区是磁盘的逻辑划分。分区是一种将磁盘空间划分为独立部分的方法,每个部分都可以作为独立的逻辑单元,具有自己的文件系统、挂载点和用途(例如,一个分区用于操作系统,另一个分区用于数据)。

  • 特征

    • 分区是使用分区工具(例如fdiskparted)创建的,并且可以具有不同的文件系统(例如,ext4,Btrfs,NTFS等)。
    • 每个分区在磁盘上都有特定的大小和位置。
    • 磁盘可以包含主分区扩展分区逻辑分区(在 MBR 分区方案中)。在 GPT 方案中,没有扩展分区的概念,您可以拥有超过 4 个主分区。
    • 在Linux中,分区通常表示为/dev/sda1/dev/sda2等,其中数字代表同一磁盘上的不同分区。
  • 例子

    • /dev/sda1:代表磁盘上的第一个分区/dev/sda
  • 为什么要对磁盘进行分区?

    • 分离不同类型的数据(例如,一个分区用于操作系统,另一个分区用于交换,另一个分区用于用户数据)。
    • 改进数据组织或隔离某些类型的数据(例如,日志、数据库)。
    • 在同一磁盘上安装多个操作系统。

3.

卷是一种更高级别的抽象,指的是可用于存储数据的存储单元。在现代系统中,术语“卷”通常用于讨论逻辑卷 管理 (LVM) 或类似技术,其中多个物理磁盘或分区可以组合成逻辑单元,系统将其视为单个存储卷。

  • 特征

    • 一个卷可以跨越多个物理磁盘或分区,从而可以更灵活地管理存储。
    • 无需对磁盘重新分区,即可调整卷大小或移动卷。
    • 逻辑卷是使用逻辑卷管理器 (LVM) 或其他类似系统创建的,允许实现动态调整大小、快照和镜像等高级功能。
    • 操作系统以与分区类似的方式挂载和访问卷,但由于 LVM 提供的抽象,它们具有更灵活的管理。
    • 在某些情况下,可能指具有文件系统的单个分区(例如在 Windows 中)。
  • 例子

    • vg0/lv_root:使用 LVM 创建的卷组中的逻辑卷vg0可能跨越多个物理分区或磁盘,但被视为单个单元。
  • 为什么使用卷(LVM) ?:

    • 创建可跨越多个磁盘的灵活且易于管理的存储池。
    • 动态调整卷大小(无需重新分区即可增加或减少存储容量)。
    • 通过使用 RAID(条带化、镜像)等功能来提高冗余度和性能。

主要差异总结

描述关系
磁盘物理存储设备(HDD、SSD 等)。创建分区和卷的基础。
分区磁盘的逻辑划分,允许将磁盘空间划分为不同的部分,以用于不同的文件系统。磁盘上会创建分区,一个磁盘上可以存在多个分区。
更高级别的抽象,通常由 LVM 创建,可以跨越多个磁盘或分区并提供更大的灵活性。可以从一个或多个分区(甚至整个磁盘)创建卷,从而实现灵活的管理。

使用案例:

  1. 磁盘

    • 您有一个存储数据的物理磁盘。
  2. 分区

    • 您想将磁盘分成多个部分,一个用于操作系统,另一个用于数据。
    • 您想将多个物理磁盘合并为一个逻辑卷,以获得更大的灵活性、动态调整大小或冗余度。

实践示例:

  • 在具有单个磁盘的系统上 ( /dev/sda),您可以创建:

    1. 分区

      • /dev/sda1:一个 20 GB 的根分区。
      • /dev/sda2:一个2 GB的交换分区。
      • 使用 LVM,您可以创建一个包含和的卷组( ) 。然后,您可以在此卷组之上创建逻辑卷(例如,一个用于,另一个用于),从而实现灵活分配和动态调整大小。vg0``/dev/sda1``/dev/sdb1****/home``/var

例子:


Physical Disk (/dev/sda)
├── Partition 1 (/dev/sda1) [Root filesystem, Btrfs]
├── Partition 2 (/dev/sda2) [Swap space]
└── LVM Volume Group (vg0)
    ├── Logical Volume 1 (lv_home) [For /home]
    └── Logical Volume 2 (lv_var) [For /var]