Thanks for your response, Peter.
Its because as part of I/O error handling, I want to
retry I/O request through other available paths to the
same physical disk.
This can be used in a typical multipath configuration
(shown below), where disk devices offer multiple paths
to provide high availability in the event of cable
failures.
^
| One metadevice exported to the
| application. I/O will be tried
| on one path, and retried on
| other paths automatically in
| case of error. Applications
| are transparent of the fact
| that there are two paths to
| same physical disk.
|
±-------±------+
| Virtual Device |
| exported by my |
| layered driver |
±-±---------±-+
| |
Path 1 —> | | <— Path 2 to disk
| |
±-----±---------±-----+
| Physical Device |
| exporting multiple |
| paths |
±-----------------------+
In this multipath scenario, Windows operating system
sees multiple paths to same disk as two different
physical disks. My idea of creating a virtual device
on top of two physical paths to same disk, is to
provide transparent high availabilty interface to
applications.
My understanding is that filter drivers allow I/O
request for a particular device to be routed to the
layered driver first. In my example, there are two
physical devices (actually multiple paths to same
device) for which I want request to be forwarded to my
driver first. Since I want applciation/FS to be highly
available, we need to create FS on a device, that is
unaffected by an underlying device failure.
Do you still think that a filter driver is a better
option then layered driver for this example ?
To answer your questions regarding hiding underlying
devices: This problem exists even in current Windows
implementation. Users see two paths to same device as
two separate disks and there is nothing stopping
sysadmin to use them as two separate disks and causing
data corruption.
Please let me know your thoughts.
Thanks,
Anuj
— Peter Wieland
wrote:
> why is it that you aren’t writing a filter driver?
> Then you don’t have
> to worry about the partition table layout at all,
> nor would you have to
> export duplicates of every single disk in the
> system.
>
> have you considered how you’ll keep the system from
> allowing both the
> physical and your logical disk from being used at
> the same time? If
> they are different device objects then they can each
> get a drive letter.
> If ntfs tries to mount on both instances of the same
> volume it will
> become quite unhappy (since each instance of NTFS
> sees something else
> modifying the data on disk behind its back)
>
> -p
>
> -----Original Message-----
> From: Anuj Garg [mailto:xxxxx@yahoo.com]
> Sent: Friday, July 19, 2002 1:01 PM
> To: NT Developers Interest List
> Subject: [ntdev] Partitioning on a virtual disk
> device
>
>
> I’m writing a layered driver (not a filter driver),
> that would sit on top of SCSI “disk” class driver.
> All
> this driver does is to take request from upper level
> entities (i.e. Application/File System) and pass
> them
> on to “disk” class driver. Main role of my layered
> driver is to do some special error handling in case
> of
> I/O failures.
>
> I’m planning to export devices from my driver, such
> that, for every physical SCSI disk I’ll export a
> virtual disk to the application, so that they can
> create file system on my exported devices (instead
> of
> physical disks), to take advantage of the enhanced
> error handling.
>
> My problem is that how do I map partitions created
> on
> my virtual disk with underlying physical disk
> partitions ?
>
> If there is only one partition on the virtual disk
> then there should be any issue, as all I have to do
> is
> to pass on the request to underlying physical
> driver.
> However, if sysadmin creates more partitions on
> virtual disk then it has to be mapped properly with
> underlying physical disk partitions.
>
> Any ideas on how to do it ? Also I would like to
> have
> better understanding of Windows disk partitioning
> scheme.
>
> TIA,
>
> Anuj
>
>
> Do You Yahoo!?
> Yahoo! Autos - Get free new car price quotes
> http://autos.yahoo.com
>
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@microsoft.com To
> unsubscribe send a blank email to %%email.unsub%%
>
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
%%email.unsub%%
Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes
http://autos.yahoo.com