2014-02-25 51 views
0

当我尝试运行RavenDB Web管理控制台“媒体被写保护”时,出现错误。RavenDB - 媒体被写保护

我正在使用的网站在AWS上运行,其中一台虚拟机具有一个SSD上的乌鸦数据,​​另一个SSD上具有乌鸦索引以实现最佳性能。我生成了一个带有8个内核和64GB内存的计算实例,以加快索引速度,因为大约300k个文档需要在深度映射中进行索引,这些文档需要两天时间才能在2core/8GB实例上运行时进行索引。

当我断开大型实例并将驱动器重新连接到一个更适度的虚拟机并将其启动后,出现错误。我想到了上面提到的设置,索引,数据和网站都在不同的磁盘上,我可以随意拆卸和重新连接虚拟机的驱动器。

有人可以告诉我这是一个非常简单的修复?

完整堆栈跟踪:

[IOException: The media is write protected. 
] 
    System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +14381860 
    System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) +1578 
    System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) +213 
    Raven.Database.Indexing.IndexStorage..ctor(IndexDefinitionStorage indexDefinitionStorage, InMemoryRavenConfiguration configuration, DocumentDatabase documentDatabase) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\IndexStorage.cs:97 
    Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:231 
    Raven.Web.ForwardToRavenRespondersFactory.Init() in c:\Builds\RavenDB-Stable\Raven.Web\ForwardToRavenRespondersFactory.cs:120 
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165 
+0

我认为你正在使用EBS卷?您无法附加和分离实例存储。 – datasage

回答

0

原来这是一个配置问题。

因为我连接了多个磁盘,我需要将索引位置重新指定为不同的驱动器号,因为我附加它们的顺序决定了它们的字体与Raven的web.config设置不匹配。无论如何,由此产生的混乱最终导致我需要重新索引。大鼠。

我很想听听任何使用此策略的人快速构建索引,以查看他们使用哪些流程使其顺利运行。

+0

作为对这个问题的进一步更新 - 做我正在尝试做的最简单的方法是暂时升级实例类型 - 我没有意识到你可以做到这一点。 – HCdev