问题标签 [volume-shadow-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1509 浏览

python - python中的一致备份

我正在研究python中的远程备份解决方案。服务器部分将在 Unix/Linux 上运行,因为它将使用硬链接进行有效的增量备份。

然而,客户端部分也必须在 Windows 上运行,并且文件锁定可能是一个问题。

根据我的研究,卷影复制服务 (VSS) 是我需要的。类似于 LVM 快照,不受文件锁定的影响。然而,VSS API 似乎没有在 pywin32 中实现。

我目前的想法是使用一些包装器来创建临时 VSS 快照,运行客户端,然后将其删除。

我想知道是否有人在这种情况下有经验。

0 投票
1 回答
295 浏览

volume-shadow-service - 在 VSS HW Provider 中跳过 GetTgetLuns、LoacteLuns 和 FillinLunInfo

我正在编写 VSS 硬件提供程序,并且能够创建快照。因此,当使用跟踪工具进行跟踪时,我注意到 PostCommitSnapshot 非常完美。在自动导入卷影副本的 PostCommit 快照之后,GetTgetLuns、LoacteLuns 和 FillinLunInfo 是必需的,但正如我正在采取的那样某些存储上的卷的快照,因此我没有足够的信息提供给 GetTargetLuns。

  1. 如果我继续使用 AreLunsSupported 中提供的相同 LUNinfo,则会在 GetTargetLuns 中引发 BadSourceLun 错误。

  2. 如果我尝试通过注释掉 GetTargetLuns 中的检查条件来跳过此错误,则执行将继续,直到 LocateLuns 然后异步等待,然后调用 OnLunEmpty 方法,然后中止快照。

  3. 我尝试将快照状态值设置为 VSS_SS_POSTCOMMITTED,但这是保留给系统使用的。

所以我想在 Vss Hardware Provider 中跳过这些方法?

任何帮助都将不胜感激。

0 投票
4 回答
34732 浏览

windows - 从 powershell 访问卷影复制 (VSS) 快照

我正在尝试使用 Windows 7 中的 Windows Power Shell 创建和访问卷影复制快照。我发现我可以通过之前的超级用户问题使用以下内容创建快照:

我找不到任何文档表明可以将卷影副本设置为“已公开”,以便可以使用WMI. 同一个问题中链接的一篇文章显示了使用联结访问快照的黑客行为。

当我尝试访问符号链接时,我得到以下信息:

尝试直接访问快照会给出以下结果:

如何从 powershell 脚本访问 VSS 快照?

0 投票
1 回答
588 浏览

volume-shadow-service - 如何在 vss 硬件提供商中实现 GetTargetLUNs?

我正在为基于 ZFS 的 iSCSI 目标实现 VSS 硬件提供程序。我们已经实现了 AreLunSupported、precommitsnapshot 和 commitsnapshot 等功能,到目前为止它工作正常。但在此之后,它VSS_E_NO_SNAPSHOTS_IMPORTED在 LocateLun 方法中因“”错误而失败。而且我认为我们没有正确填写目标 LUN 信息。

我的问题是:

  1. 如何查找目标 LUN 的序列号?我需要挂载新创建的快照然后获取序列号吗?

  2. 我们是否还需要填写互连、存储标识符信息,或者我可以为这些传递 NULL。

0 投票
1 回答
300 浏览

.net - 如何以编程方式从 VSS 备份驱动器中读取项目?

我使用 VSS 备份到备份驱动器。我想将该驱动器附加到另一台机器上并列出其上的所有备份,然后列出特定备份中的所有项目。

我知道您可以使用该wbadmin工具在命令提示符下执行此操作wbadmin get versionswbadmin get items但我想以编程方式读取这些值。

我知道有用于使用 VSS 的powershell 命令,但它们似乎只适用于本地“策略”对象。我找不到从另一台机器检查磁盘的方法(使用不同的策略)。例如,Get-WBBackupTarget 没有指向我的备份驱动器号的参数,只有一个 Policy 对象。并且 Get-WBPolicy 仅返回系统 afaik 的当前策略。

那么是否可以通过编程方式从备份驱动器中读取信息?

0 投票
2 回答
4002 浏览

c# - 使用 Alphavss 的卷影复制错误

我正在尝试使用网站alphavss上提供的示例代码。我正在尝试包含 VssBackup.cs 类,然后在我的程序中使用它。很可能我错过了一个 dll 引用,但我在使用组件时没有收到任何错误。任何人都知道问题可能是什么?

我收到 3 个错误:

找不到类型或命名空间名称“快照”(您是否缺少 using 指令或程序集引用?)

找不到类型或命名空间名称“IVssAsync”(您是否缺少 using 指令或程序集引用?

找不到类型或命名空间名称“快照”(您是否缺少 using 指令或程序集引用?)

类 ** VssBackup.cs站点提供的 C# 示例代码**

0 投票
1 回答
714 浏览

c++ - 需要 Volume Shadow Copy API 来冻结 Exchange Writer

我已经实现了自己的应用程序(可能使用卷影复制)来备份 Exchange 2010 服务器。

我发现了以下架构:备份序列图

但我找不到任何直接冻结/解冻 Exchnage Writer 的功能。

我确实发现只有在创建快照时调用“冻结”和“解冻”命令的函数(请参阅以下架构:在 VSS 下处理备份的概述

请帮助我找到有关第一个模式的任何文档,即我可以使用哪些 API 函数来冻结和解冻 Writers

谢谢

0 投票
2 回答
1923 浏览

c# - 如何在尽可能快地写入文件时复制文件?

TL/DR:

我有两台机器:A 和 B。我制作了一个测试程序,以测试它们之间的介质(接口)——我在将文件从 A 复制到 B 再从 B 复制到 A 时检查错误,但我必须以最快的速度完成我可以。所以我有一个源文件:SRC,我将它复制到 B 到新文件:MID,然后我再次将 MID 从 B 复制到 A 到新文件 DST,然后我将 SRC 与 DST 进行比较。这里的问题是如何以尽可能高的速度(即并行)进行

精心制作的:

如何在写入文件时同时复制文件?我使用CopyFileEx将文件从 SRC 复制到 MID,我必须同时将它从 MID 再次复制到 DST。数据必须显式通过磁盘,我不能使用内存缓冲区或缓存,并且:

  1. 必须在 MID 上创建文件时执行第二次复制 - 我等不及它完成复制。
  2. 我必须再次明确地从 MID 读取文件 - 我不能使用我用来从 SRC 复制到 MID 的缓冲区
  3. 所有这一切都必须以最快的速度执行

我可以轻松处理同步问题(我使用CopyFileExCopyProgressRoutine回调来了解完成了多少字节并相应地触发事件),但是文件在被复制时被锁定以供读取。我不能使用普通的 C# 的FileStream - 它太慢了......

我目前正在研究的可能解决方案:

  • 卷影复制(特别是AlphaVSS
  • memory-mapped-file - 我设法做到非常快,但我担心系统实际上使用缓存,并没有真正从 MID 读回
  • 一些我不知道的win-API P/Invoke 函数??
0 投票
1 回答
353 浏览

sqlite - 为什么sqlite没有VSS?

Microsoft 的 SQL Server 实现包含 VSS 编写器和其他组件,以帮助它进行备份,而不会对性能造成相当大的影响。
但是 Sqlite 中没有内置这样的 VSS 功能。
所以我想了解 VSS 在 SQL Server 中的重要性以及它对 Sqlite 有何用处?

0 投票
2 回答
477 浏览

c++ - VSS 硬件提供商

我一直在尝试按照说明安装 Windows SDK 附带的示例 VSS 硬件提供程序。不幸的是,COM 拒绝注册 DLL,并给出以下输出:

这是该线程中描述的相同问题:

http://www.osronline.com/showthread.cfm?link=185213

我试过同时使用 x86 和 x64 机器,但没有区别。任何提示或建议都将受到欢迎。