Logical Disk Manager
The Logical Disk Manager (LDM) is an implementation of a logical volume manager for Microsoft Windows NT, developed by Microsoft and Veritas Software. It was introduced with the Windows 2000 operating system, and is supported in Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows 8, and Windows 10. The MMC-based Disk Management snap-in (diskmgmt.msc) hosts the Logical Disk Manager. On Windows 8 and Windows Server 2012, LDM was deprecated in favor of Storage Spaces.[1]
Logical Disk Manager enables disk volumes to be dynamic, in contrast to the standard basic volume format. Basic volumes and dynamic volumes differ in ability to extend storage beyond one physical disk. Basic partitions are restricted to a fixed size on one physical disk. Dynamic volumes can be enlarged to include more free space either from the same disk or another physical disk. (For more information on the difference, see Basic and dynamic disks and volumes, below.)
Overview
Basic storage involves dividing a disk into primary and extended partitions.[2] This is the route that all versions of Windows that were reliant on DOS-handled storage took, and disks formatted in this manner are known as basic disks. Dynamic storage involves the use of a single partition that covers the entire disk, and the disk itself is divided into volumes or combined with other disks to form volumes that are greater in size than one disk itself. Volumes can use any supported file system.
Basic disks can be upgraded to dynamic disks; however, when this is done the disk cannot easily be downgraded to a basic disk again. To perform a downgrade, data on the dynamic disk must first be backed up onto some other storage device. Second, the dynamic disk must be re-formatted as a basic disk (erasing all data). Finally, data from the backup must be copied back over to the newly re-formatted basic disk.
Dynamic disks provide the capability for software implementations of RAID. The main disadvantage of dynamic disks in Microsoft Windows is that they can only be recognized under certain operating systems, such as Windows 2000 or later (excluding versions such as Windows XP Home Edition, and Windows Vista Home Basic and Premium[3]), FreeBSD, or the Linux kernel starting with version 2.4.8.
Dynamic disks under Windows are provided with the use of databases stored on disk(s). The volumes are referred to as dynamic volumes. It is possible to have 2000 dynamic volumes per dynamic disk, but the maximum recommended by Microsoft is 32.
Partition table types
ID (GUID Partition Table and MBR Partition Table) | Description |
---|---|
GPT: 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 MBR: None1 | "metadata" partition. The area of the disc that is used for holding configuration data that describe the volumes that LDM manages. |
GPT: AF9B60A0-1431-4F62-BC68-3311714A69AD MBR: 0x42 | "data" partition. The area of the disc that is used for holding LDM volumes themselves. |
^1 On a disk partitioned with the MBR Partition Table scheme, the Logical Disk Manager metadata are not stored in a partition, but are stored in a 1 MiB area at the end of the disk that is not assigned to any partition.[4] The disc partitioning tools in Windows 2000 up to Windows 10 will not use that area for disk partitions, but the tools in other operating systems might. The aforementioned reservation of 1 MiB would only occur on a disk which is identified by Windows as a "Local Disk" as opposed to a "Removable Disk". Thus a CompactFlash (CF) card capable of true IDE mode connected to a PC running Windows through an IDE port or a USB to ATA bridge, a mobile HDD enclosure case for instance, would get this reservation in contrast to one being connected through a normal USB card reader or a passive 16-bit CF to PCMCIA adapter where it does not deserve this reservation.
Basic and dynamic disks and volumes
Dynamic disk is a proprietary format of Microsoft developed together with Veritas.[5][6] A basic volume is a volume stored on a basic disk, while a dynamic volume is a volume stored on a dynamic disk. Basic volumes and dynamic volumes differ in ability to extend storage beyond one physical disk. The basic partitions are confined to one disk and their size is fixed. Dynamic volumes allow to adjust size and to add more free space either from the same disk or another physical disk. Striped volumes (RAID 0) and spanned volumes (SPAN) are dynamic volumes using space on different physical disks. Presently, spanned volume can use a maximum of 32 physical disks.[7]
The main differences between basic and dynamic disks are:[8][9]
- Dynamic disks support multi-partition volumes; basic disks do not.
- Windows stores basic disk partition information in the registry and dynamic disk partition information on the disk
Dynamic disks allow more flexible configuration without the need to restart the system. Some space at the end of the disk is reserved by the setup program of Windows with a kernel version of 5.x lest the disk would be upgraded to a dynamic one. The amount that is reserved is one cylinder or 1 MiB whichever is greater. One cylinder depending on drive geometry and translation can be up to 8 MiB (to be precise, 512 bytes/sector × 63 sectors/head × 255 heads/cylinder = 8225280 bytes = 7.844 MiB) which account for a remaining 8 MiB free space once Windows setup is used to create a partition. Coincidentally, Solaris 11 leave exactly this amount of space at the beginning of a disk. Furthermore, this is not true since Windows Vista which always leave 1 MiB that is aligned to 2048 sector boundaries at the end of a local disk for the purpose of dynamic disk.
Compatibility problems
Disk Management in Windows Vista creates partitions according to a 1-MiB alignment boundary, ignoring the previous conventions called "drive geometry" or "CHS".[10] In other words, Vista's Disk Management acts like it is using a non-standard CHS geometry of 2048 sectors per track/head and 1 track/head per cylinder (the sectors being of 512 bytes so that 2048 sectors is 1 MiB).
Compatibility problems with using a 1-MiB alignment boundary
- Extended partition tables that are edited with Vista Disk Management should not be edited with Windows XP Disk Management. XP Disk Management may delete these extended partitions without warning.[11] One way to correct these mixed partition tables is to delete all partitions (reboot or reconnect drive) and use only one partition editor on the drive.
- You may not be able to install XP[12] or Windows Server 2003[13] to partitions created with Vista Disk Management.
- These 1 MiB alignments ignore prior CHS conventions such as the regular intervals at which partitions begin and end, and the distance between the extended boot records and their logical drives.[14]
- Other operating systems (perhaps DOS programs used by backup or recovery software), boot loaders, or partitioners may have problems viewing or editing partitions that do not follow a CHS alignment. (Generally, unpredictable results may come from using more than one partitioner on the same partition table without checking the alignments with tools such as Ranish Partition Manager. For example, operating system installers usually start with a partition editor so it may be important that this uses the same alignments as the previous partition editors, if all partitions are not deleted (and the computer reset) before installing the operating system. The variation in CHS geometry is almost always a different number of heads per cylinder, for example, 240 instead of 255. However, partition editors may seem to ignore this sort of geometry in some situations. "Head" and "track" mean the same thing in this context.)
Advantages of using a 1-MiB alignment boundary
- Microsoft states that on large-sector drives, also known as advanced format, there is a "performance issue" (i.e., problem) when the starting offset of the first partition is an "odd" number. This partition alignment offset also affects newer generation drives not necessarily specified as advanced format such as SSD drives. Misalignment causes severe degradation not only with random write performance, but also with sequential write performance (normally to a far lesser degree).
- (Quoting Microsoft directly): "In earlier versions of Windows, the default starting offset for the first partition on a hard disk drive was sector 0x3F. Because this starting offset was an odd number, it could cause performance issues on large-sector drives because of misalignment between the partition and the physical sectors. In Windows Vista, the default starting offset will generally be sector 0x800." [15]
- The "starting offset" refers to the sectors before the partition. "3F" is a hexadecimal value; in decimal that is "63". This is the size of one head (or "track") in terms of a standard CHS geometry. The hex value "800", in decimal form is 2048, so this is referring to the first MiB of space, from the start of the disk. Because a 1-MiB alignment boundary is used by the Vista partitioner(s), 1 MiB is "reserved for" the Master boot record (MBR), instead of the traditional 63 sectors (31.5 KiB). Note that the MBR is only one sector in size, but many software packages use these 63 sectors of "free space" (or any "free space" preceding the partition) for their purposes. 63 sectors is the minimum space that should be reserved for the MBR or an Extended Boot Record(EBR).
- What this means is that, if there were no partitions on a disk when it was booted, a partition was created using standard CHS geometry (as would be used by most partition editors such as DOS fdisk, Linux fdisk, Ranish Partition Manager, or an XP installation disk), and this partition was created at the start of the disk, then the partition will start on the 2nd head. The partition could not begin at the first sector because the MBR located there, so instead it starts the partition on the second head. When primary partitions are created anywhere else (following typical CHS geometry alignment) they start at the beginning of a cylinder.
- If a computer is booted with no partitions defined, and the first partition is created with the Vista installation disk, it will instead use the 1-MiB alignment. (The partitioner on the Vista installation disk follows the 1-MiB alignment just as Vista Disk Management does.) By following a 1-MiB alignment, all partitions will have an even numbered offset (so long as no other partitioner is used on the drive).
- Using a 1-MiB alignment boundary allows safer editing of the partition table with Vista Disk Management.
- Partition tables using a CHS geometry (or some mix of alignments) may prevent Vista from resizing partitions or it may produce unconventional partition tables. For example, the endings of the "EBR extended partitions" (type 0x05) may overlap other partitions, and it will leave unprecedented amounts of space between an extended boot record and its logical drive. Ranish Partition Manager does not show an error if there are more than 63 sectors between the EBR and its logical volume, so long as the EBRs and VBRs are on the first sector of any track (head). If either the VBR or the EBR are not on the first sector of a head, Ranish Partition Manager shows the "partition" in red and when the partition is highlighted, this error message appears: "Boot sector doesn't have valid information". Using the 1-MiB alignment boundary will not put VBRs or EBRs on the first sector of a track (according to any standard CHS geometry) and Vista Disk Management will not use the CHS geometry of a partition table created with a different partition editor.
- A disk that is solely partitioned with Vista Disk Management can create partitions in exact MiB sizes and never leave leftover bits of space between partitions. (As long as you don't count the full 1 MiB allocated for each logical partition to contain just a single sector extended boot record.)
- With Vista DM, all the logical drives besides the one nearest the beginning of the extended partition (type 0x0F), usually reserve exactly one additional MiB, for an extended boot record, instead of the 63 sectors (31.5 KiB) that is most commonly reserved according to alignments based on a CHS geometry. If other partition editors are used on the disk then Vista DM may reserve different amounts of space for the EBRs.
See also
- Logical volume management
- Storage virtualization
- Logical Volume Manager (Linux) (LVM)
- List of Microsoft Windows components
- diskpart
References
- ↑ "Virtual Disk Service is transitioning to Windows Storage Management API (Windows)". Microsoft MSDN.
- ↑ "How Basic Disks work". Microsoft TechNet.
- ↑ "Windows Vista support for large-sector hard disk drives". Retrieved 2007-10-08.
- ↑ "How Dynamic Disks and Volumes Work". Microsoft TechNet.
- ↑ "VERITAS Storage Foundation for Windows: The Dynamic Disk Advantage - Comparing Dynamic Disks to Basic Disks". Symantec. Archived from the original on 2012-05-29.
- ↑ "Veritas Storage Foundation for Windows by Symantec (PDF)" (PDF). Symantec.
- ↑ https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/dm_striped_volume.mspx?mfr=true
- ↑ "Basic and Dynamic Disks". Microsoft MSDN.
- ↑ "Dynamic vs. Basic Storage in Windows 2000". Microsoft Support.
- ↑ "Vista's New Partitioning Rules". Multibooters Dual and Multibooting with Vista. line feed character in
|work=
at position 13 (help) (Source is questionable. There is some confusion on this source page, which is clarified here.) - ↑ "The case of the disappearing partitions". Vista Information.
- ↑ "You cannot install Windows XP successfully after you use Windows Vista or Windows PE 2.0 to create partitions on a hard disk". Microsoft Support. July 23, 2009.
- ↑ "You cannot install Windows Server 2003 successfully after you use Windows Vista or Windows PE 2.0 to create partitions on a hard disk". Microsoft Support. August 14, 2009.
- ↑ "Vista's New Partitioning Rules". Multibooters Dual and Multibooting with Vista. line feed character in
|work=
at position 13 (help) - ↑ "Windows Vista support for large-sector hard disk drives". Microsoft Support. May 29, 2007.
External links
- Captive-NTFS Logical Disk Manager FAQ
- Comparison matrix of Windows LDM and Veritas Volume Manager
- libldm — LGPL library for reading Windows LDM on Linux