If you've ever gone to format a drive in Windows, you would've seen that it asks you what file
system you want to put on that drive.
And you may have seen that one of the options is NTFS, and that is basically the one that
anything in Windows uses by default, and it's gonna be what any internal drives your computer
is using too.
There are other options like FAT32, exFAT, but those are mostly for removable drives
like USB drives and stuff.
But what you may not know is there's actually a newer file system that was introduced in
Windows Server 2012, kind of a while ago called ReFS - resilient file system.
And it was meant to really be the next generation of file system after NTFS.
And I actually have one of my drives as ReFS.
So that's mostly what we're gonna be talking about today, kind of what's the differences.
Why it's not really more popular, what it does, what it can't do compared to other ones,
all that sort of stuff.
Now I'm not an expert in all this, so I'm not gonna be able to give a super detailed
technical explanation, but I will try to explain as much as I can in a way that
really anyone can understand.
So don't worry if you don't know what I'm really talking about, if you have a reasonable
understanding of stuff, you'll probably be able to get it.
A couple more things to note is there's a couple restrictions on who and how you can
actually use this file system.
So the big one is you can actually only use this file system
if you're using editions, Windows 10 or 11 Pro for Workstations, which is a step above
Windows Pro, or Enterprise.
And also at the moment, from my understanding, you can't actually use it on a single drive,
you have to use it on a pool of drives using the "storage spaces," feature in Windows.
Meaning you're gonna combine multiple drives
in some kind of pool.
For example, on my computer I have two identical hard drives that are mirrored, and I have
them as ReFS.
Now, like the name resilient file system suggests, one of the big main features of ReFS is that
it has resiliency.
It's resilient to data corruption, stuff like that.
For example, it has automatic built in integrity checking for metadata of files, meaning the
info about like where files are stored, the names of the files, that sort of thing, as
well as integrity of the files themselves and the data within them.
But that second one is only if you enable it.
And one interesting consequence of this, is you cannot actually run the ChkDsk command
on an ReFS hard drive.
If you try to do it, it will actually say "The type of file system is ReFS.
The ReFS file system does not need to be checked", but like I said, if you want to enable the
actual integrity of the files themselves and the data within them.
So like, if there's an error between the two drives, it can actually check and correct
those.
You do have to enable that separately with a PowerShell command.
One way to do it is using this command.
You do 'Set-FileIntegrity', and then the directory and then enable true, and that's gonna set
it for any new files going into it.
But if you want to actually enable it for existing files in a directory, you have to
use this other command.
You do 'Get-Item -Path', and then it'll select all the files in there basically.
And then you set the file integrity for all those to true.
And apparently how this works is the files are checked when they're read,
so if something happens to one of the files, you wouldn't notice until you actually go
to read the file, then it checks the check sum and it's like, "oh, this is a problem".
And then reads from the other disks, figures out which is the correct one, and then copies
that over.
Also though it does automatically check on a schedule,
this is called scrubbing, every few weeks or so.
And I think using the task scheduler, you can also schedule it to do that more frequently.
But let's talk about some other features that are only in the ReFS file system that aren't
in NTFS.
So the first one is called Block Cloning, and this one is similar to a concept called
de-duplication,
if you know what that is.
Basically it is a little bit different, but the basic idea is say you write some data
on the drive, and then you want to go make a copy of that file and put it somewhere else.
What will happen is it will basically put a pointer to the original data instead of
copying the data again.
So it just kind of saves space.
There's also a pretty related concept called Copy On Write, where if multiple programs
are trying to access the same data, they're gonna be accessing the same pointer, no matter
whether they think it's in the same location or not.
But if one program goes to try and modify that data, which all the other programs are
trying to access, it will then make a copy, its own copy, for that program and then change
that.
So it doesn't change anything the other programs are working on.
There's another feature called Sparse VDL.
This one is a highly technical feature, it took me a while to even kind of wrap my head
around.
So I'm not gonna get into too much detail.
Basically VDL stands for Valid Data Length.
And this feature has to do with the allocated space for a file versus how much actual space
that file is taking up, which is the valid data length.
Like how much actual valid data is in there, versus how much is reserved you can think
of it, on the drive.
And specifically, I believe it has to do with the space between those two numbers, the difference.
And apparently it will like write zeros so that it's easier for programs to identify
the dead space, something like that,
I don't really fully understand it.
But basically the result is that it makes it way faster to create virtual hard drives
for virtual machines, that's kind of all you have to know about it.
If you want a way more technical, better explanation, if you would understand it, I'll put a link
in the description to a article that I was reading that
does a way better job than I ever could.
Another feature is Mirror Accelerated Parity.
So a mirrored drive set is basically where all the data is the same across all the drives.
So you write some data to one drive, it's gonna also get written in the same exact place
to the others.
So if one drive fails, then the same exact thing is on the other drives,
you don't have to worry about it.
But the problem with that is even though you have basically perfect redundancy, you, no
matter how many drives you have, even if you have five drives mirrored, you only get one
drive's worth of data storage.
So it's a lot faster, but not really efficient in terms of file storage capacity.
Whereas with the parity drive system, it's gonna be at least three drives and one of
them is a so-called parity drive.
So you basically get two disks worth of storage out of the three.
And then what happens is, as you write the data to the first two, the computer also does
a calculation and puts that special, calculated data into the parity drive, such that if you
lose any of the first two drives, you can use the information in the parity drive to
recalculate
that whole drive back to what it was.
So it's really fancy, but basically it allows you to lose any of the drives because obviously
if you lose the parity drive, well you still have all the original data that was written.
Now the downside with parity drives is it can be slower for performance, because you
have to also do all these calculations instead of just writing directly to the drive.
So how mirrored accelerated parity works is it basically uses both.
So when you're first writing data to the drive, it just acts like a mirror.
So it's just gonna have the full performance, it's not gonna worry about calculating the
parity stuff until a certain threshold is reached, like a certain chunk, and then it
will run the parity for all that data,
then put it on the drive, but not initially.
So you kind of get a boost of speed initially, and then it'll kind of do that in chunks.
So it only calculates parity in chunks, from my understanding.
And then finally, another feature are file level snapshots.
Now I believe this only applies to Windows Server because with regular Windows editions,
there already is something like this, File History, where you can have a drive and Windows
will store different versions of files,
like you can already do this.
But with Windows Server, I believe it's a separate feature, where before you could create
snapshots where it would kind of take a picture of entire volume, a whole drive, and then
you could restore the drive to that snapshot as a whole, at any point, as long as you still
have the snapshot.
Whereas with this, I believe now, you can do that for individual files.
Whereas with NTFS, it can only be done as a whole drive.
But again, I'm pretty sure this can also already be accomplished through software, like it's
built into regular consumer Windows.
Now you might be thinking, "alright this sounds great,
why not just use ReFS for everything?
I wanna use it now", but there are actually quite a few things that it does not support
that are in NTFS, so let's go over those.
The big one is right now, you cannot actually boot the operating system off an ReFS drive.
So you can't install ReFS on your main Windows drive.
It can only be used basically for storage.
Now, theoretically I guess they could change that in the future, but as it stands right
now, that's how it is.
Also there's no file system level compression.
So you can obviously compress files with software, like a zip program or something like that.
But I believe there's no way to automatically do it along with the file system.
Whereas with NTFS, there are some directories that automatically, just by default, get compressed,
they're set to do that.
And also ReFS can't do file system level encryption.
So again, you can still do software encryption of files, obviously, but when it comes to
at the file system level, it happening automatically,
and there are some directories where they're set to have the file system encrypt the drive
just on the fly, and you can't do that with ReFS.
Now from my understanding, like I said, you can still do software based encryption and
also even full drive level encryption.
Like BitLocker still works on ReFS, it's just
what I believe for specific directories, you can't set specific directories to be encrypted,
while others aren't, like you can with NTFS.
Another feature is you can't have the Page File for windows on ReFS, also sometimes call
it swap space.
It's basically virtual memory, you can sort of think of it like overflow
RAM.
Not exactly, but you can sort of think of that simplified.
Basically, in addition to the fast memory on the computer, if the computer needs to,
it can use some drive space like memory, but you can't do that on ReFS for whatever reason.
And then also notable you can't put an ReFS file system on any removable drive.
It has to be a permanent like internal drive.
And like I said, in addition to being multiple drives in some kind of storage pool.
Now, I don't know if that's an inherent limitation of the file system or whether they just haven't
added that as a feature, cause they want to focus on it being used for storage, like in
data centers where it's gonna be used in pools,
I don't know.
Just you can't right now.
Now there are some other limitations, you can see the list here, but I'm not gonna get
into the rest cuz I don't think they're as interesting, and I don't really fully understand
them.
But if you want, you can look at them.
So you might be asking yourself, are you missing out by not using this ReFS file system?
Probably not.
If you do have multiple drives that are in a pool in your computer, then yeah it might
be actually better to use ReFS, but just know that you can't convert one to the other without
wiping the drives.
So unless you're setting up a computer new, then don't worry about it.
As for why Microsoft kind of put the breaks on rolling this out as the next-gen file system,
honestly I'm not really sure.
I think they just decided maybe it wasn't as beneficial, or it wasn't as necessary.
Maybe they didn't want compatibility issues, that's usually a big thing with Microsoft
is compatibility issues.
But at least now you know it exists, so you can figure out if you wanna use it, if you
have the opportunity.
So if you guys enjoyed this video, give it a big giant thumbs up and let me know what
you think down in the comments, do you you use ReFS in your computer?
Or maybe you knew about it and didn't use it anyway, let me know.
If you wanna keep watching, the next video I'd recommend is talking about EXE versus
MSI installer files.
Which one should you use, given the opportunity?
You can click that right there, it's pretty interesting.
So thanks so much for watching guys and I'll see you in the next video.