В настоящее время мы находимся в процессе перехода с одного веб-сервера на два веб-сервера с балансировкой нагрузки и сталкиваемся с некоторыми проблемами, которые мы не знаем, как исправить. Одна из них заключается в том, что на текущем единственном сервере размещаются приложения, которые записывают данные на диск. Приложения, работающие на сервере, ожидают, что когда что-то будет записано на диск, это позже действительно будет существовать, поэтому важно, чтобы это условие выполнялось и в архитектуре с двумя серверами.
Установка с двумя серверами - это пара экземпляров VMWare с Windows Server 2008 R2 в качестве гостевой операционной системы. По умолчанию эти экземпляры не имеют совместно используемой файловой системы, поэтому простое перемещение приложений приведет к их поломке, поскольку один экземпляр будет записывать в файловую систему что-то, чего не существует в другом.
Таким образом, нам нужно разделить файловую систему между двумя виртуальными серверами. Наш хост предложил создать общий сетевой ресурс в SAN и сопоставить этот общий ресурс индивидуально на каждой виртуальной машине. Это не работает слишком хорошо из-за разрешений NTFS и т. Д., Потому что доступ к общему ресурсу должен осуществляться несколькими независимыми веб-приложениями, которые даже не будут находиться в одном пуле приложений.
Единственное решение такого рода - это жестко закодировать "идентичность" для каждого веб-приложения в его web.config
файл, но это означает пароль в виде открытого текста, который мне не нравится.
Поскольку серверы виртуальные, я думаю: нельзя ли каким-то образом сделать область NAS доступной как физический диск в операционной системе gues? Поскольку VMWare полностью контролирует виртуальное оборудование, можно подумать, что он сможет «подделать» локальный жесткий диск на виртуальной машине, который на самом деле является папкой на NAS, но пока я не нашел ничего, что заявляет, как и если это возможно.
Поэтому я должен спросить замечательное сообщество Server Fault: можно ли сделать папку на NAS доступной как физический диск (обычно D:
) в обеих виртуальных машинах?
Вы можете иметь внутренний сервер хранения (или использовать один из веб-серверов) и совместно использовать каталог данных с другим сервером через NFS, который поддерживается в 2008R2. Это должно решить проблемы с параллелизмом и сделать хранилище локальным для серверов.
Если ваш NAS поддерживает NFS, вы сможете сделать это с его помощью.
Что вы можете сделать, так это использовать SAN как общий диск SCSI, чтобы диск отображался как D: на обеих машинах, но только одна из них может использовать его одновременно. Вы не получите балансировку нагрузки таким образом, но вы получите избыточность - если другая виртуальная машина выйдет из строя, вы можете переключиться на другую, и она займет диск и продолжит работу.
Как указывалось ранее, одно и то же хранилище нельзя активно использовать в двух местах. Вот почему у вас обычно есть серверная часть базы данных, обрабатывающая данные для этого типа приложения, так что у вас может быть несколько клиентов, одновременно обращающихся к нему.
Короче говоря, то, что вы пытаетесь сделать, не сработает, я не уверен, может ли VMWare использовать общую папку в качестве диска, но я точно знаю, что 2 виртуальных сервера не могут использовать один и тот же диск и получить к нему доступ в В то же время по той же причине, по которой это не может сделать почти ни одно другое приложение, обе машины не могут записывать данные на один и тот же диск одновременно. Обычно VMWare выдает ошибку, когда вы пытаетесь запустить второй сервер, сообщая вам, что файл на диске заблокирован.