невозможно завершить сеанс так как устройство в этом сеансе продолжает использоваться
Проблемы с iSCSI?
Установил StarWind iSCSI SAN — Free Edition. Создал target, но так как бесплатная версия не позволяет использовать физический диск, я создал виртуальный.
С помощью встроенных в Windows инициаторов, я подключил iSCSI диск на 2-х компьютерах. Попробовав записать чтото на диск, заметил что место на диске расходуется, но записанная информация не отображается в этом диске с другого компьютера.
В первую очередь я подумал, что это может такая особенность iSCSI. Но ничего по этому поводу найти не смог.
Подскажите пожалуйста, в чём причина и как обеспечить нормальную работу iSCSI?
Оценить 2 комментария
обычное расшаривание папки по сети, то что под windows — это samba
nfs — похожая технология, но родом из linux
samba тоже поможет вам, да.
Никак. Только ставить кластерную файловую систему.
NTFS не кластерная файловая система, поэтому работать с двумя компьютерами на запись не будет (вариант — писать может только один а все остальные read-only).
Теоретически к NTFS есть соответствующее расширение (CVS — Clustered Shared Volume), но оно работает только и в Hyper-V.
PS. Вы пять тысяч четыреста восемьдесят шестой пользователь, попытавшйся сделать так с iSCSI. 🙂
Это не «особенность iSCSI», это особенность доступа к блочному устройству вообще, по любому протоколу. Кто-то должен быть диспетчером, отслежвающим записи и уведомляющим использующие устройство хосты об этом (иначе хосты ничего друг о друге не узнают, и не смогут сохранить целостность FS при записи).
В случае NAS и его протоколов (CIFS/SMB, NFS) такой арбитр это сама OS этого NAS. В случае блочного протокола такого арбитра по умолчанию нет.
Существуют специальные кластерные файловые системы, которые эту задачу решают. Но это не наколенное решение.
В общем случае примите как данность: Несмотря на то, что блочное устройство по протоколу iSCSI можно подключить одновременно к разным серверам, делать это (без установки кластерной FS) нельзя.
Решения:
1. Изменить решение, не подключать к одному iSCSI-устройству более одного хоста на запись.
2. Не использовать блочные протоколы, а использовать файловые протоколы (NAS)
2. Установить кластерную файловую систему
about_Remote_Disconnected_Sessions
Краткое описание
Объясняет, как отключиться и повторно подключиться к сеансу PowerShell (PSSession).
Подробное описание
Начиная с PowerShell 3,0 можно отключиться от PSSession и повторно подключиться к сеансу PSSession на том же или другом компьютере. Состояние сеанса сохраняется, а команды в PSSession продолжают выполняться, пока сеанс отключен.
Функция отключенных сеансов доступна только в том случае, если на удаленном компьютере работает PowerShell 3,0 или более поздней версии.
Функция отключенных сеансов позволяет закрыть сеанс, в котором был создан сеанс PSSession, и даже закрыть PowerShell и завершить работу компьютера без прерывания выполнения команд в сеансе PSSession. Отключенные сеансы полезны для выполнения команд, которые занимают длительное время и предоставляют ИТ-специалистам необходимое время и гибкость устройств.
Невозможно отключиться от интерактивного сеанса, запущенного с помощью Enter-PSSession командлета.
Можно использовать отключенные сеансы для управления PSSession, которые были отключены непреднамеренно в результате сбоя компьютера или сети.
В реальном использовании функция отключенных сеансов позволяет приступить к решению проблемы, подать особое внимание на проблему с более высоким приоритетом, а затем возобновить работу решения даже на другом компьютере в другом расположении.
Командлеты отключенных сеансов
Следующие командлеты поддерживают функцию отключенных сеансов:
Как работает функция отключенных сеансов
Начиная с PowerShell 3,0, PSSession не зависят от сеансов, в которых они созданы. Активные PSSession хранятся на удаленном компьютере или на стороне сервера соединения, даже если сеанс, в котором был создан PSSession, закрыт, а исходный компьютер выключен или отключен от сети.
В PowerShell 2,0 сеанс PSSession удаляется с удаленного компьютера, когда он отключается от исходного сеанса или после завершения сеанса, в котором он был создан.
При отключении сеанса PSSession сеанс PSSession остается активным и сохраняется на удаленном компьютере. Состояние сеанса меняется с » работает » на » отключено«. Можно повторно подключиться к отключенному сеансу PSSession из текущего сеанса или из другого сеанса на том же компьютере или на другом компьютере. Удаленный компьютер, поддерживающий сеанс, должен быть установлен и подключен к сети.
Команды в отключенном сеансе PSSession продолжают выполняться на удаленном компьютере до завершения выполнения команды или заполнения буфера вывода. Чтобы предотвратить приостановку выполнения команды в полном буфере вывода, используйте параметр аутпутбуфферингмоде Disconnect-PSSession New-PSSessionOption New-PSTransportOption командлетов, или.
Отключенные сеансы хранятся в отключенном состоянии на удаленном компьютере. Они доступны для повторного подключения до тех пор, пока не будет удален сеанс PSSession, например с помощью Remove-PSSession командлета или до истечения времени ожидания сеанса PSSession. Можно настроить время ожидания простоя сеанса PSSession с помощью параметров идлетимеаутсек или IdleTimeout Disconnect-PSSession New-PSSessionOption New-PSTransportOption командлетов, или.
Другой пользователь может подключиться к PSSession, который вы создали, но только в том случае, если они смогут предоставить учетные данные, которые использовались для создания сеанса, или использовать RunAs учетные данные конфигурации сеанса.
Как получить PSSession
Начиная с PowerShell 3,0 Get-PSSession командлет получает PSSession на локальном компьютере и на удаленных компьютерах. Он также может получить PSSession, созданные в текущем сеансе.
При получении PSSession не забудьте найти их на компьютере, где они поддерживаются, то есть на удаленном или серверном компьютере.
Например, если вы создадите сеанс PSSession на компьютере Server01, получите его с компьютера Server01. При создании сеанса PSSession с другого компьютера на локальный компьютер получает сеанс с локального компьютера.
В следующей последовательности команд показано, как Get-PSSession работает.
Первая команда создает сеанс на компьютере Server01. Сеанс находится на компьютере Server01.
Чтобы получить сеанс, используйте параметр ComputerName параметра Get-PSSession со значением Server01.
Если параметр ComputerName параметра Get-PSSession имеет значение localhost, Get-PSSession получает PSSession, которые завершаются в и сохраняются на локальном компьютере. Он не получает PSSession на компьютере Server01, даже если они были запущены на локальном компьютере.
Чтобы получить сеансы, созданные в текущем сеансе, используйте Get-PSSession командлет без параметров. В этом примере Get-PSSession получает сеанс PSSession, который был создан в текущем сеансе, и подключается к компьютеру Server01.
Отключение сеансов
Чтобы создать отключенный сеанс, используйте параметр InDisconnectedSession Invoke-Command командлета. Он создает сеанс, запускает команду и немедленно отключается, прежде чем команда сможет вернуть выходные данные.
Следующая команда выполняет Get-WinEvent команду в отключенном сеансе на удаленном компьютере Server02.
Подключение к отключенным сеансам
Можно подключиться к любому доступному отключенному сеансу PSSession из сеанса, в котором был создан сеанс PSSession, или из других сеансов на локальном компьютере или на других компьютерах.
Можно создать сеанс PSSession, выполнить команды в сеансе PSSession, отключиться от сеанса PSSession, закрыть PowerShell и завершить работу компьютера. Часы позже можно будет открыть другой компьютер, получить сеанс PSSession, подключиться к нему и получить результаты команд, которые выполнялись в сеансе PSSession, пока он был отключен. Затем в сеансе можно выполнить дополнительные команды.
Следующая команда получает сеансы на компьютере Server02. Выходные данные включают два отключенных сеанса, оба из которых доступны.
Следующая команда подключается к Session2. Сеанс PSSession теперь открыт и доступен.
Как получить результаты
Чтобы получить результаты команд, которые выполнялись в отключенном сеансе PSSession, используйте Receive-PSSession командлет.
Receive-PSSession Вместо использования Connect-PSSession командлета можно использовать. Если сеанс уже подключен повторно, Receive-PSSession получает результаты команд, которые выполнялись в момент отключения сеанса. Если сеанс PSSession по-прежнему отключен, Receive-PSSession подключается к нему и получает результаты команд, которые выполнялись в момент отключения.
Следующая команда использует Receive-PSSession командлет для подключения к сеансу PSSession на компьютере Server02 и получения результатов Get-WinEvent команды, которая выполнялась в сеансе Session3. Команда использует параметр Target для получения результатов в задании.
Чтобы получить результаты задания, используйте Receive-Job командлет.
Свойства состояния и доступности
Свойства состояние и доступность отключенного сеанса PSSession сообщают о том, доступен ли сеанс для повторного подключения.
Значение свойства State определяется текущим сеансом. Значение disconnected означает, что сеанс PSSession не подключен к текущему сеансу. Но это не значит, что сеанс PSSession отключен от всех сеансов. Он может быть подключен к другому сеансу.
Следующий пример выполняется в двух сеансах PowerShell на одном компьютере. Обратите внимание на изменение значений свойств State и Availability в каждом сеансе, так как сеанс PSSession отключен и повторно подключен.
Отключенные сеансы сохраняются на удаленном компьютере, пока вы не удалите их, например с помощью Remove-PSSession командлета, или истечет время ожидания. Свойство IdleTimeout параметра PSSession определяет время, в течение которого отключенный сеанс сохраняется до его удаления.
При создании и отключении сеансов убедитесь, что время ожидания простоя в PSSession достаточно велико для поддержания сеанса в соответствии с вашими потребностями, но не настолько долго, что он потребляет ненужные ресурсы на удаленном компьютере.
Свойство идлетимеаутмс конфигурации сеанса определяет время ожидания простоя по умолчанию для сеансов, использующих конфигурацию сеанса. Можно переопределить значение по умолчанию, но используемое значение не может превышать свойство максидлетимеаутмс конфигурации сеанса.
Чтобы найти значения идлетимеаутмс и максидлетимеаутмс для конфигурации сеанса, используйте следующий формат команды:
Можно переопределить значение по умолчанию в конфигурации сеанса и установить время ожидания сеанса PSSession в режиме простоя при создании сеанса PSSession и при отключении.
Если вы являетесь членом группы администраторов на удаленном компьютере, вы можете создавать и изменять свойства идлетимеаутмс и максидлетимеаутмс конфигураций сеансов.
Значения времени ожидания простоя
Значение времени ожидания простоя конфигураций сеанса и параметров сеанса указано в миллисекундах. Значение времени ожидания простоя сеанса и параметры конфигурации сеанса находятся в секундах.
Например, следующая команда устанавливает время ожидания простоя в 48 ч.:
Чтобы создать сеанс PSSession с определенным значением времени ожидания простоя, используйте параметр идлетимеаутмсек New-PSSessionOption командлета. Затем используйте параметр Session в значении параметра SessionOption New-PSSession Invoke-Command командлетов или.
Чтобы изменить время ожидания простоя сеанса PSSession при отключении, используйте параметр идлетимеаутсек Disconnect-PSSession командлета.
Режим буферизации вывода
Режим буферизации вывода сеанса PSSession определяет управление выводом команд, когда выходной буфер сеанса PSSession заполнен.
В отключенном сеансе режим буферизации вывода фактически определяет, будет ли команда продолжать выполняться, пока сеанс отключен.
Допустимы следующие значения:
Блок сохраняет данные, но может прерывать выполнение команды. Значение Drop позволяет завершить выполнение команды, несмотря на возможную потерю данных. При использовании значения Drop выходные данные команды необходимо перенаправить в какой-либо файл на диске. Это значение рекомендуется для отключенных сеансов.
Свойство аутпутбуфферингмоде конфигурации сеанса определяет режим буферизации вывода по умолчанию для сеансов, использующих конфигурацию сеанса.
Чтобы найти значение конфигурации сеанса аутпутбуфферингмоде, можно использовать любой из следующих форматов команд:
Можно переопределить значение по умолчанию в конфигурации сеанса и установить режим буферизации вывода сеанса PSSession при создании PSSession, при отключении и при повторном подключении.
Если вы являетесь членом группы «Администраторы» на удаленном компьютере, вы можете создать и изменить режим буферизации вывода конфигураций сеанса.
Чтобы создать сеанс PSSession с режимом буферизации вывода, используйте параметр аутпутбуфферингмоде New-PSSessionOption командлета, чтобы создать параметр сеанса со значением Drop. Затем используйте параметр Session в значении параметра SessionOption New-PSSession Invoke-Command командлетов или.
Чтобы изменить режим буферизации вывода сеанса PSSession при отключении, используйте параметр аутпутбуфферингмоде Disconnect-PSSession командлета.
Отключение замыканий на себя сеансов
Сеансы замыкания на себя или локальные сеансы являются PSSession, которые происходят и завершаются на одном и том же компьютере. Как и другие PSSession, активные сеансы замыкания на себя сохраняются на компьютере на удаленном конце подключения (локальный компьютер), поэтому можно отключиться от и повторно подключиться к сеансам замыкания на себя.
По умолчанию, сеансы замыкания на себя создаются с маркером безопасности сети, который не позволяет выполнять команды в сеансе для доступа к другим компьютерам. Вы можете повторно подключиться к сеансам замыкания на себя с маркером безопасности сети из любого сеанса на локальном или удаленном компьютере.
Однако если используется параметр EnableNetworkAccess New-PSSession Enter-PSSession Invoke-Command командлета, или, то сеанс замыкания на себя создается с помощью интерактивного маркера безопасности. Интерактивный токен позволяет командам, выполняемым в сеансе замыкания на себя, получать данные с других компьютеров.
Вы можете отключить сеансы замыкания на себя с помощью интерактивных маркеров, а затем повторно подключиться к ним из того же сеанса или другого сеанса на том же компьютере. Однако, чтобы предотвратить вредоносный доступ, можно повторно подключиться к сеансам замыкания на себя с помощью интерактивных маркеров только с того компьютера, на котором они были созданы.
Ожидание заданий в отключенных сеансах
Устойчивые сеансы и непреднамеренное отключение
Сеанс PSSession может быть непреднамеренно отключен из-за сбоя компьютера или отключения сети. PowerShell пытается восстановить PSSession, но его успешность зависит от серьезности и длительности причины.
Состояние непреднамеренного разъединения PSSession может быть разорвано или закрыто, но оно также может быть отключено. Если значение State равно disconnected, то для управления сеансом PSSession можно использовать те же методы, что и при намеренном отключении сеанса. Например, можно использовать Connect-PSSession командлет для повторного подключения к сеансу и Receive-PSSession командлет для получения результатов команд, которые выполнялись во время отключения сеанса.
При закрытии (выходе) сеанса, в котором был создан PSSession во время выполнения команд в сеансе PSSession, PowerShell обслуживает сеанс PSSession в состоянии disconnected (отключено ) на удаленном компьютере. При закрытии (выходе) сеанса, в котором был создан PSSession, но в сеансе PSSession не выполняется ни одной команды, PowerShell не пытается сохранить PSSession.
Автовыход пользователя на сервере Windows. Использование его для оптимизации работы вашего VDS / VPS сервера
Анализируя поступающие заявки наших клиентов в службу технической поддержки и обращения к консультантам, мы заметили, что множество наших клиентов сталкиваются с такой проблемой как «автовыход», не понимая, что это и как с ней бороться.
Любой сервер в том числе и виртуальный сервер должен работать в постоянном режиме 24 х 7 х 365. И соответственно пользователь, который запускает программы на выполнение на сервере, рассчитывает, что они будут работать в таком же режиме. Именно на это и рассчитывают наши клиенты. Однако устанавливая на VPS сервер различного рода десктопное программное обеспечение, которое разрабатывалось «умельцами» без мысли, что существуют компьютеры, не имеющие мониторов, отключившись от сервера через какое-то время замечают, что его программа перестала работать должным образом, при том что сервер активен и доступен. Замечают это как правило при следующем подключении к серверу для анализа данных с как подразумевалось работавшего ПО. Проблема, очевидно в том, что данное ПО что-то пытается брать со свойств экрана (разрешение, позиция курсора и т.д.) при том, что ни экрана, ни курсора при отключенном сеансе нет.
Данная проблема является частным случаем ограничения работы сеансов по времени, за которую отвечает узел групповой политики «Службы удаленных рабочих столов» с одноименным названием «Ограничение сеансов по времени». Он позволяет гибким образом настраивать время работы запущенных сеансов или Ваших сотрудников на сервере при организации рабочих мест, что позволяет Вам более оптимально использовать ресурсы арендуемого сервера Windows VDS.
Запустим на сервере редактор «Локальной групповой политики» нажав сочетание клавиш Win+R и Набрав команду GPEDIT.MSC
Далее необходимо перейти по следующему пути в ветке «Конфигурация пользователя», если Вы хотите произвести настройки для текущего пользователя или в ветке «Конфигурация компьютера», если Вы хотите настроить для всех пользователей сервера.
1.«Задать ограничение по времени для отключенных сеансов»
При помощи этого параметра Вы можете указать промежуток времени в минутах, часах или днях, на протяжении которого открытые программы будут продолжать работать после отключения от сервера.
Если Вы хотите, чтобы Ваша программа работала на сервере в постоянном режиме и не происходило «автовыхода» при отключении, то данный параметр следует указать как Включен и выбрать Никогда. Что является решение выше описанной ситуации.
Данный параметр можно так же использовать в моменты, когда рабочий день сотрудника закончен, но на выполнение некоторых автономных процессов, которые не требуют вмешательства пользователя, нужно еще дополнительное время, в таком случае можно указать Включено и указать необходимо количество времени.
2.«Задать ограничение по времени для активных, но бездействующих сеансов служб удалённых рабочих столов»
Бездействующим сеансом считается тот сеанс, когда удаленный рабочий стол начинает простаивать без каких-либо операций ввода, со стороны пользователя. Сотрудник может подключиться к удаленному рабочему столу сервера, а затем по завершении рабочего дня попросту забыть отключиться от сервера и уйти домой. В таком случае сеанс активен, но простаивает и ресурсы выделяемые сервером и зарезервированные для этого пользователя, простаивают и соответственно расходуются не эффективно. В таком случае можно указать Включено и указать необходимо количество времени, после которого при простое, сеанс будет завершен.
3.«Задать ограничение по времени для активных сеансов служб удалённых рабочих столов»
Данный параметр отвечает за завершение даже активного сеанса, скажем если политикой Вашей компании является достаточно строгий контроль рабочего времени и не допускаются переработки. То Вы можете установить это параметр на Включено и указать максимальный период рабочего времени. Соответственно по завершению рабочего дня, сеанс даже активного пользователя будет завершен, но за две минуты до отключения, пользователю будет предоставлено предупреждающее сообщение, чтобы он смог сохранить все выполненные за время подключения изменения и открытые рабочие документы.
Во втором и третьем случае обязательно включение параметра «Завершать сеанс при достижении ограничения по времени». Включение данного параметра указывает, чтобы производилось именно завершение сеанса пользователя, в противном случае будет производится только отключение сеанса, но не его завершение.
4.«Задать предел времени для выхода из сеансов RemoteApp»
Данный параметр позволяет Вам, завершать сеанс в момент, когда Вы не производили подключение к удаленному рабочему столу сервера, но подключение к серверу было установлено при помощи сторонних программ. При закрытии программы, если параметр «Не задан», то сеанс отключается, но не завершается. Для завершения сеанса необходимо указать Включено и установить время, так же доступен параметр «Немедленно».
Настройка лимитов (таймаутов) для RDP/RDS сессий в Windows
По-умолчанию, когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессией в терминальном клиенте (mstsc, rdcman или rdp html web клиент) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.
По-умолчанию в Windows RDP сессия пользователя может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с открытыми программами и документами.
На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2016 используют около 35% памяти сервера. Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks.
С помощью команды quser можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.
Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).
При использовании RDS сервера, вы можете настроить параметры таймаутов сессий в настройках RDS коллекций на вкладке Session.
Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию срок сеанса неограничен – never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.
Также можно настроить ограничение времени RDP сессии в свойства локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC).
В Windows Server 2012 R2/2016/2019 можно настроить таймауты RDP сессий с помощью групповых политик. Можно использовать как редактор доменных GPO gpmc.msc, так и редактор локальных групповых политик (gpedit.msc) на конкретном RDS сервере или клиенте (если вы используете десктопную Windows в качестве терминального сервера)
Параметры таймаутов RDP сессий находятся в разделе GPO
По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.
Сохраните изменения и обновите политики сервера (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.