|
Home > Archive > Data Storage > April 2006 > Volume Shadow Copy on XP/2K3
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Volume Shadow Copy on XP/2K3
|
|
| Don Matthews 2006-04-09, 7:01 pm |
|
I have a few questions about Windows VSS (Volume Shadow copy Service). On Windows XP and above, there's a kernel-mode driver,
VOLSNAP.sys, and a user-mode service, VSSVC.exe, that ships with the OS.
The VSS SDK speaks to the topic of creating Writers and Requestors and Providers, but can one create shadow copies (snapshots)
without any add-on ISV software at all, perhaps using the native Backup app or Explorer? Or is it necessary to purchase third-party
software in order to use VSS?
I've looked at the VSHADOW.exe sample requestor app that is in the VSS SDK. It says you can create snapshots with this command-line
tool. But is it actually useful? Is there anything else I'm missing here? That is, perhaps a built-in way to do it in a Windows
GUI-like manner? I guess that's what the third-party apps must bring to the table.
Any examples of existing apps like this? For example, who does the following:
a.) writers
b.) requestors
c.) providers (SW and HW)
Comments welcome.
Thanks,
Don
| |
| Maxim S. Shatskih 2006-04-09, 7:01 pm |
| > The VSS SDK speaks to the topic of creating Writers and Requestors and
>Providers, but can one create shadow copies (snapshots)
> without any add-on ISV software at all, perhaps using the native Backup app
or
>Explorer? Or is it necessary to purchase third-party
> software in order to use VSS?
Most modern 3rd party backup software are VSS requestors - like, say, Veritas
BackupExec (file-oriented) and our ShadowProtect (image-oriented).
Native NTBackup is IIRC the VSS requestor too, at least in Win2003.
MSSQLServer, MSDE and Exchange's storage engine are VSS writers, so are the
database components of Windows proper like AD or the registry. Dunno about
Oracle, maybe it is the VSS writer too.
The main purpose of the VSS subsystem is to tie together the 3rd party titles -
backup apps one side and database-style server software another side, and to
allow centralized coordination of the file- or image- based backup actions
which involve the data storage of aforementioned database software.
Before VSS, the only proper way of backing up, say, MSSQLServer was their
native DUMP/BACKUP DATABASE command.
Yes, this could be optimized by writing your own fast virtual tape driver with
compression and crypto and issuing BACKUP DATABASE to it (like the Quest
company did), but you could not do file- or image-based backup of the data
store of the transactional database software.
The issue is inability to synchronize the database's disk operations with the
moment of imposing a snapshot (snapshotting software is 100% necessary to back
up the database at file level since its store files are exclusively locked).
This means that the snapshot can possibly contain non-integral in-transition
data - in the middle of atomic transaction or such.
VSS is exactly about this. It is not only the snapshot engine, but also the
coordinator which sends notifications about snapshot creation to the database
software ("writers"). The sequence is like the following:
- database software is asked to flush its caches, forming the integral (in
terms of ACID and transaction boundaries) image of the database in the disk
file. After this flush, the database software is banned from doing any writes
to its disk file.
- filesystem is banned from accepting writes to any files, all writes are
pended
- filesystem's cache is flushed to the disk stack
- snapshot is taken
- the filesystem's ban on writes is released, it starts to process the pended
writes
- database software's ban is released, it is alllowed to write to its storage
files again
This enforces that the snapshot will contain ACID-integral image of the
database's storage files.
> I've looked at the VSHADOW.exe sample requestor app that is in the VSS
>SDK. It says you can create snapshots with this command-line
> tool. But is it actually useful?
Only to create a snapshot, expose it as a drive letter and then do backup using
scripted XCOPY from the snapshot :-)
The main purpose of this code is to be the sample for backup app developers.
> a.) writers
MSSQLServer, Exchange, MSDE, Active Directory implementation, registry
implementation, COM+ RegDb implementation.
> b.) requestors
Veritas BackupExec and StorageCraft ShadowProtect (smaller version released Sep
05, full desktop/server version is at release candidate phase now).
> c.) providers (SW and HW)
SW - shipped with some of the backup software, like the aforementioned titles.
Usually they are more or less the same as VolSnap but with some additional
features which are not in VolSnap.
HW - should be shipped with disk arrays, which have in-array snapshot facility
working below the OS's disk stack level.
BTW - the major VSS writers write the events about their VSS participation
(started hold, released hold, backup complete and such) to the Windows
Application log.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
|
|
|
|
|