NTFS features
NTFS v3.0, the third version of NTFS to be introduced, includes several new features over its
predecessors: disk usage quotas, sparse file support, reparse points, distributed link tracking and
file-level encryption, also known as the Encrypting File System (EFS).
Alternate data streams (ADS)
Alternate data streams allow files to be associated with more than one data stream. For example,
a file such as text.txt can have an ADS with the name of text.txt:secret (of form
filename:streamname) that can only be accessed by knowing the ADS name or by specialized directory
browsing programs. Alternate streams are not detectable in the original file's size but are lost
when the original file (i.e. text.txt) is deleted with a RemoveFile or RemoveFileTransacted call
(or a call that uses those calls), or when the file is copied or moved to a partition that doesn't
support ADS (e.g. a FAT partition, a floppy disk, or a network share). While ADS is a useful
feature, it can also easily eat up hard disk space if unknown either through being forgotten or not
being detected.
Quotas
Disk quotas were introduced in NTFS v3. They allow the administrator of a computer that runs a
version of Windows that supports NTFS to set a threshold of disk space that users may utilize. It
also allows administrators to keep track of how much disk space each user is using. An
administrator may specify a certain level of disk space that a user may use before they receive a
warning, and then deny access to the user once they hit their upper limit of space. Disk quotas do
not take into account NTFS's transparent file-compression, should this be enabled. Applications
that query the amount of free space will also see the amount of free space left to the user who has
a quota applied to them.
Sparse files
Sparse files are files which contain sparse data sets, data mostly filled with zeroes. Many
scientific applications can generate very large sparse data sets. Because of this, Microsoft has
implemented support for sparse files by allowing an application to specify regions of empty (zero)
data. An application that reads a sparse file reads it in the normal manner with the file system
calculating what data should be returned based upon the file offset. As with compressed files, the
actual size of sparse files are not taken into account when determining quota limits.
Reparse points
This feature was introduced in NTFS v3. These are used by associating a reparse tag in the user
space attribute of a file or directory. When the object manager (see Windows NT line executive)
parses a file system name lookup and encounters a reparse attribute, it knows to reparse the name
lookup, passing the user controlled reparse data to every file system filter driver that is loaded
into Windows 2000. Each filter driver examines the reparse data to see if it is associated with
that reparse point, and if that filter driver determines a match then it intercepts the file system
call and executes its special functionality. Reparse points are used to implement Volume Mount
Points, Directory Junctions, Hierarchical Storage Management, Native Structured Storage and Single
Instance Storage.
Volume mount points
Similar to Unix mount points, where the root of another file system is attached to a directory.
In NTFS, this allows additional file systems to be mounted without requiring a separate drive
letter (like C: or D:) for each.
Directory Junctions
Similar to Volume Mount Points, however directory junctions reference other directories in the
file system instead of other volumes. For instance, the directory C:\exampledir with a directory
junction attribute that contains a link to D:\linkeddir will automatically refer to the directory
D:\linkeddir when it is accessed by a user-mode application. This function is conceptually similar
to symbolic links to directories in Unix except that the target in NTFS must always be another
directory. (Typical Unix file systems allow the target of a symbolic link to be any type of
file.)
Hard links
Originally included to support the POSIX subsystem in Windows NT, hard links are similar to
directory junctions, but used for files instead of directories. Hard links can only be applied to
files on the same volume since an additional filename record is added to the file's MFT record.
Short (8.3) filenames are also implemented as additional filename records that don't have separate
directory entries.
Hierarchical Storage Management (HSM)
Hierarchical Storage Management is a means of transferring files that are not used for some
period of time to less expensive storage media. When the file is next accessed the reparse point on
that file determines that it is needed and retrieves it from storage.
Native Structured Storage (NSS)
NSS was an ActiveX document storage technology that has since been discontinued by Microsoft. It
allowed ActiveX Documents to be stored in the same multi-stream format that ActiveX uses
internally. An NSS file system filter was loaded and used to process the multiple streams
transparently to the application, and when the file was transferred to a non-NTFS formatted disk
volume it would also transfer the multiple streams into a single stream.
Volume Shadow Copy
The Volume Shadow Copy (VSC) service keeps historical versions of files and folders on NTFS
volumes by copying old, newly-overwritten data to shadow copy (copy-on-write). The old file data is
overlaid on the new when the user requests a revert to an earlier version. This also allows data
backup programs to archive files currently in use by the file system. On heavily loaded systems,
Microsoft recommends setting up a shadow copy volume on separate disk to reduce the I/O load on the
main volume.
File compression
NTFS can compress files using a variant of the LZ77 algorithm (also used in the popular ZIP file
format). Although read-write access to compressed files is transparent, Microsoft recommends
avoiding compression on server systems and/or network shares holding roaming profiles because it
puts a considerable load on the processor.
Single-user systems with limited hard disk space will probably use NTFS compression
successfully.[citation needed] The slowest link in a notebook is not the CPU but the speed of the
hard drive, so NTFS compression allows the limited, slow storage space to be better used, in terms
of both space and (often) speed. NTFS compression can also serve as a replacement for sparse files
when a program (e.g. a download manager) is not able to create files without content as sparse
files.
Single Instance Storage (SIS)
When there are several directories that have different, but similar, files, some of these files
may have identical content. Single instance storage allows identical files to be merged to one file
and create references to that merged file. SIS consists of a file system filter that manages
copies, modification and merges to files; and a user space service (or groveler) that searches for
files that are identical and need merging. SIS was mainly designed for remote installation servers
as these may have multiple installation images that contain many identical files; SIS allows these
to be consolidated but, unlike for example hard links, each file remains distinct; changes to one
copy of a file will leave others unaltered. This is similar to copy-on-write, which is a technique
by which memory copying is not really done until one copy is modified.
Encrypting File System (EFS)
EFS provides strong and user-transparent encryption of any file or folder on an NTFS volume. EFS
works in conjunction with th EFS service, Microsoft's CryptoAPI and the EFS File System Run-Time
Library (FSRTL).
EFS works by encrypting a file with a bulk symmetric key (also known as the File Encryption Key,
or FEK), which is used because it takes a relatively smaller amount of time to encrypt and decrypt
large amounts of data than if an asymmetric key cipher is used. The symmetric key that is used to
encrypt the file is then encrypted with a public key that is associated with the user who encrypted
the file, and this encrypted data is stored in an alternate data stream of the encrypted file. To
decrypt the file, the file system uses the private key of the user to decrypt the symmetric key
that is stored in the file header. It then uses the symmetric key to decrypt the file. Because this
is done at the file system level, it is transparent to the user. Also, in case of a user losing
access to their key, support for recovery agents that can unencrypt files has been built in to the
EFS system.
Symbolic links
Symbolic links were originally used to support the POSIX subsystem in Windows NT.[citation
needed] Symbolic links (or Soft links) are resolved on the client side. So when a symbolic link is
shared, the target is subject to the access restrictions on the client, and not the
server.
Transactional NTFS
As of Windows Vista, applications can use Transactional NTFS to group changes to files together
into a transaction. The transaction will guarantee that all changes happen, or none of them do, and
it will guarantee that applications outside the transaction will not see the changes until the
precise instant they're committed.
Change Journal
Record the changes of files.
|