1

So, LVM and RAID can create virtual storage devices that can span multiple physical HDDs. After creating logical volumes or a RAID device, the usual thing to do is format the device with a filesystem.

Why does mkfs.ext4 work when ext4 is not a clustered filesystem?

From what I know each partition on each HDD has a local filesystem of a certain type (ext2,ext3,ext4,ntfs,fat32...). If we combine partitions from multiple different HDDs shouldn't a clustered filesystem be required?

What happens if multiple processes try to modify the same file, when a clustered filesystem isn't used?

3
  • 3
    RAID divorces the clustering from the filesystem (and OS). With RAID, the management of the physical drive cluster is managed at the (preferably) hardware level, so the fact that your virtual block device actually consists of (say) ten sets of spinning platters is not seen by the OS. Commented May 15, 2017 at 16:43
  • @DopeGhoti hardware RAID is nice (or RAID on a SAN), but you also get RAID with fake RAID, md RAID, LVM RAID, RAID in ZFS or btrfs... Commented May 15, 2017 at 19:35
  • Hence the "preferably" parenthetical. Which is why fake RAID is called fake RAID, for example. Commented May 15, 2017 at 20:16

2 Answers 2

3

A clustered filesystem is one that can handle multiple computers largely independently accessing the same storage. So it has to deal with, for example, the underlying storage can change unexpectedly (because one of the other computers wrote to it).

Compare that to RAID1 (for example, because it's simple to understand): all that does is take the filesystem's request to "write data X to sector Y on device A" and instead write X to sector Y on devices B and C. Or the filesystem's request to "read sector Y on device A" to a read of sector Y on either B or C (which contain the exact same data). It's completely transparent the filesystem—RAID presents a block device that behaves exactly as block devices are expected to.

Basically, a block device is expected to (this isn't a formal definition):

  • allow read/write to sectors in arbitrary order
  • if you write data D to sector X, then any amount of time later read sector X, it should return D.

RAID devices do that (in fact, they do it better than actual disks). A shared disk, as you'd use for a clustered filesystem, does not: in particular, it violates the second bullet point, as another machine may have written data D₂ to that sector in the meantime.

LVM functions similar to RAID in this respect, as it's just remapping sector numbers, but in a way that preserves the block device behavior. It may, for example, send sectors 1-100 to device A and sectors 101-200 to device B, but that still preserves those behaviors (provided A and B behave, of course).

1

From what I know each partition on each HDD has a local filesystem of a certain type (ext2,ext3,ext4,ntfs,fat32...). If we combine partitions from multiple different HDDs

you can't combine partitions of type ext2,ext3,ext4,ntfs,fat32...

you can only combine partitions which have been formatted with type LVM PV, RAID ...

The result is a virtual block device, like the block device for a partition. You can format it with any block filesystem or none. (With LVM, the PVs are combined into a Volume Group, which you can then create a number of Logical Volumes on. The LVs are the virtual block devices).

Clustered filesystems provide a totally different service. They can allow a single storage device, to be mounted as a filesystem by multiple different computers at the same time. This is of less general applicability, e.g. to start with it's only interesting if you're going to have several computers.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.