По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье мы расскажем как решить проблему с блокировкой файлов в ESXi. Проблема Появляется ошибка при добавлении диска имеющейся виртуальной машины (VMDK) к виртуальной машине, которая не включается: Failed to add disk scsi0:1. Failed to power on scsi0:1 Включение виртуальной машины зависает на 95%. Не удается включить виртуальную машину после развертывания ее из шаблона. Включение виртуальной машины выдает ошибки доступа к файлам, конфигурации виртуальной машины, или файла подкачки: Unable to open Swap File Unable to access a file since it is locked Unable to access a file [filename] since it is locked Unable to access Virtual machine configuration В записях журнала появляются похожие записи: WARNING: World: VM xxxx: xxx: Failed to open swap file [path]: Lock was not free WARNING: World: VM xxxx: xxx: Failed to initialize swap file [path] При открытии консоли для виртуальной машины может возникнуть ошибка: Error connecting to [path][virtual machine].vmx because the VMX is not started Виртуальная машина сообщает о конфликтных состояниях питания между центральным сервером управления vCenter Server и пользовательским интерфейсом ESXi хост. При открытии файла .vmx с помощью текстового редактора (например, cat или vi) появляются похожие записи: cat: can't open '[name of vm].vmx': Invalid argument Решение Цель блокировки файлов Для предотвращения непредвиденных изменений в ценные системные файлы и файлы виртуальной машины, их необходимо заблокировать. В определенных обстоятельствах блокировка сохраняется, даже с выключенной виртуальной машиной. Таким образом, другие ESXi хосты не смогут получить доступ к заблокированным файлам, даже если виртуальная машина не запускается. Файлы виртуальной машины, заблокированные во время выполнения, включают в себя: VMNAME.vswp DISKNAME-flat.vmdk DISKNAME-ITERATION-delta.vmdk VMNAME.vmx VMNAME.vmxf vmware.log Быстрый первичный тест Поставьте DRS (Планировщик Распределения Ресурсов) в режим обслуживания. С его помощью вы сможете выбрать хост, пока вы включаете виртуальную машину. Если DRS не используется, передайте ВМ другому хосту. Если это не удается, попробуйте включить питание виртуальной машины на других узлах кластера. Машина должна включиться, когда она окажется на узле, который заблокировал файлы. Если ВМ по-прежнему не включается, рассмотрите действия, предложенные ниже. Действия по устранению неполадок: поиск хоста заблокированного файла Чтобы определить заблокированный файл, попробуйте включить виртуальную машину. Во время включения питания ошибка может отображаться или записываться в журналы виртуальной машины. Ошибка и запись в журнале идентифицируют виртуальную машину и файлы: Чтобы найти блокирующий узел, запустите утилиту vmfsfilelockinfo с узла, который не может открыть заблокированный файл. Чтобы узнать IP-адрес хоста, который заблокировал файлы, необходимо запустить утилиту vmfsfilelockinfo для файла VMDK flat, delta или sesparse для VMFS или для файла .UUID. lck для vSAN. Утилита vmfsfilelockinfo потребует следующий материал: Заблокированный файл Имя пользователя и пароль для доступа к VMware vCenter Server (при отслеживании MAC-адреса хостом ESX.) Например: Запустите команду: ~ # vmfsfilelockinfo -p /vmfs/volumes/iscsi-lefthand-2/VM1/VM1_1-000001-delta.vmdk -v 192.168.1.10 -u administrator@vsphere.local Результат будет приблизительно такой: vmfsflelockinfo Version 1.0 Looking for lock owners on "VM1_1-000001-delta.vmdk" "VM1_1-000001-delta.vmdk" is locked in Exclusive mode by host having mac address ['xx:xx:xx:xx:xx:xx'] Trying to make use of Fault Domain Manager ---------------------------------------------------------------------- Found 0 ESX hosts using Fault Domain Manager. ---------------------------------------------------------------------- Could not get information from Fault domain manager Connecting to 192.168.1.10 with user administrator@vsphere.local Password: xXxXxXxXxXx ---------------------------------------------------------------------- Found 3 ESX hosts from Virtual Center Server. ---------------------------------------------------------------------- Searching on Host 192.168.1.178 Searching on Host 192.168.1.179 Searching on Host 192.168.1.180 MAC Address : xx:xx:xx:xx:xx:xx Host owning the lock on the vmdk is 192.168.1.180, lockMode : Exclusive Total time taken : 0.27 seconds. Примечание: в течение жизненного цикла работающей виртуальной машины ее файлы могут менять тип блокировки. Вид блокировки (mode) обозначает тип блокировки на файле. Список видов блокировки: mode 0 = отсутствие блокировки mode 1 = эксклюзивная блокировка (файл vmx работающей виртуальной машины, использует VMDK-диск (flat or delta), *vswp и т.д.) mode 2 = блокировка «только для чтения» (read-only). (Например, для файла данных flat.vmdk работающей машины со снапшотами) mode 3 = блокировка для одновременной записи с нескольких хостов (например, используется для кластеров MSCS или FTVMs) Чтобы узнать название процесса, который заблокировал файл, запустите команду lsof на хосте, заблокировавшем файл, и укажите название нужного файла: ~ # lsof | egrep 'Cartel|VM1_1-000001-delta.vmdk' Результат будет приблизительно такой: Cartel | World name | Type | fd | Description 36202 vmx FILE 80 /vmfs/volumes/556ce175-7f7bed3f-eb72-000c2998c47d/VM1/VM1_1-000001-delta.vmdk Из результата вы узнаете Cartel ID заблокировавшей машины – например, 36202. Теперь, с помощью следующей команды, выведете на экран список активных Cartel ID: ~ # esxcli vm process list Информация активных виртуальных машин сгруппирована по названиям машин. Формат приблизительно такой: Alternate_VM27 World ID: 36205 Process ID: 0 VMX Cartel ID: 36202 UUID: 56 4d bd a1 1d 10 98 0f-c1 41 85 ea a9 dc 9f bf Display Name: Alternate_VM27 Config File: /vmfs/volumes/556ce175-7f7bed3f-eb72-000c2998c47d/Alternate_VM27/Alternate_VM27.vmx ……… Найдя нужный вам VMX Cartel ID, вы узнаете название машины, заблокировавшей ваш файл. Если никакие процессы не отображаются, можете найти виртуальные машины с подключенным vmdk. Замените VMDKS_TO_LOOK_FOR на необходимый vmdk. В результате будет список всех зарегистрированных виртуальных машин, и VMDK отобразится под виртуальной машиной, которая заблокировала файл: for i in $(vim-cmd vmsvc/getallvms | grep -v Vmid | awk -F "/" '{print $2}' | awk '{print $1}'); do echo $i && find ./ -iname $i | xargs grep vmdk | grep -Ei VMDKS_TO_LOOK_FOR ; done Снятие блокировки Машину, которая не включается, переместите на заблокировавший хост и снова попробуйте включить ее. Чтобы снять блокировку, извлеките VMDK-диск или выключите машину, которая удерживает блокировку. Перезагрузите хост, который заблокировал файл. Обратитесь к VMware storage team, vSAN team или разработчику NFS за дальнейшей помощью, так как проблемы с метаданными могут мешать управлению блокировками. Снятие блокировки .lck file (только для NFS) Файлы на виртуальной машине могут быть заблокированы через NFS storage. Такие файлы заканчиваются на .lck-#### (где #### - значение поля fileid, которое можно получить из запроса GETATTR для заблокированного файла). Внимание: для безопасного извлечения файлов машина должна быть выключена. Примечание: Тома VMFS не имеют .lck файлов. Механизм блокировки для томов VMFS расположен в метаданных тома VMFS. Проверка целостности файла конфигурации виртуальной машины (.vmx) Если виртуальная машина не включается, причина может быть в наличие двух дисков в файле .vmx. Извлеките один из дисков и попробуйте включить машину снова. Команда touch *, которая раньше использовалась для устранения неполадок с заблокированными снапшотами vmdk, теперь записывает время последнего изменения файла, который должен быть остановлен и запущен с помощью vmkfstools-D или chmod-s * или vmfsfilelockinfo * для идентификации блокировки.
img
Хотя Microsoft Server 2019 уже давно выпущен, его широкое распространение идет медленно. Мы решили провести параллельное сравнение между Server 2016 и 2019 и определить, стоит ли его обновлять на данном этапе. Или, если вам следует придерживаться существующих установок 2016 года, пока больше ИТ-специалистов не попробуют Server 2019 в реальной среде. Текущее состояние Microsoft Server 2016 Microsoft Server 2016 в настоящее время используется в качестве основных рабочих лошадок для многих компаний по всему миру. В Server 2016 появилось множество замечательных функций, которых раньше не было в продуктах Windows Server. В этой версии появились такие элементы, как контейнеры, безопасная загрузка Linux и вложенная виртуализация. В этом выпуске также были представлены функции, которые сделали возможной большую интеграцию с облачными службами Microsoft Azure. В результате Server 2016 используется во многих корпоративных средах и по-прежнему является надежным исполнителем в области серверных операционных систем. Текущее состояние Microsoft Server 2019 Те, кто следил за разработкой Server 2019, вероятно, с беспокойством отметили, что он не смог достичь цели Release-To-Manufacturing (RTM). Вместо этого он пошел прямо в общий доступ General Availability. Это первая версия Microsoft Server, в которой это реализовано. Проще говоря, не так много людей, устанавливающих серверные продукты на физические серверы, как тех, кто устанавливает их на виртуальные машины и в облако. Это означает, что необходимость в получении сертификата оборудования для операционной системы от поставщиков отсутствовала и могла подождать. Microsoft смогла выпустить версию GA, чтобы люди могли ее загрузить и начать тестирование. Затем в середине января 2019 года начался процесс RTM, который позволил производителям проверить свое оборудование на платформе Server 2019. Обновление с Server 2016 до 2019 Не многие люди рекомендуют выполнять обновление «на месте». Однако Microsoft, доработала процесс перехода на Server 2019 и обновление с Server 2016 до 2019 больше похоже на установку пакета обновления, чем на фактическое обновление. Многин новые функции, которые предлагает 2019 год, очевидны с самого начала. Меньшие кумулятивные обновления делают весь процесс обновления более легким, что является большим изменением по сравнению с 2016 годом, когда обновления могли занимать очень, очень, много времени. Начать работу с 2019 очень легко и практически безболезненно. В сентябре 2019 года был выпущен патч (KB4516077), в котором исправлено множество проблем, препятствующих использованию Server 2019 в качестве контроллера домена в производственной среде. Это означает, что теоретически вы можете развернуть контроллер домена Server 2019, если хотите. Стоит ли Microsoft Server 2019 хлопот? Вот некоторые заметные, преимущества, которые системные администраторы могут найти полезными при обновлении до Server 2019: Server 2019 имеет лучшую защиту от программ-вымогателей Нашествие программ-вымогателей в последние годы нанесло ущерб на миллиарды долларов во всем мире. Microsoft Server 2019 теперь позволяет вам контролировать свои папки. По умолчанию вредоносное ПО не может похитить ваши данные, как это было в старых версиях операционной системы. Расширенная защита от угроз с помощью Защитника Windows Функции Advanced Threat Protection в Защитнике Windows теперь предлагают единую облачную унифицированную платформу для наиболее распространенных операций безопасности. Он разработан, чтобы помочь предотвратить нарушения, предлагая аналитику после инцидентов, автоматизированные задачи, такие как расследование, и базовые возможности реагирования на инциденты. Это часть более крупных инвестиций Microsoft, направленных на повышение уровня безопасности ее флагманской операционной системы. Server 2019 имеет более быстрый графический интерфейс Большинство людей, использующих Server 2019, сразу замечают определенную оперативность и отзывчивость - от установки ОС до установки исправлений и ежедневного использования. В Server 2019 графический интерфейс становится более совершенным и отзывчивым. Установка исправлений с помощью Server 2019 выполняется быстрее Любой, кому пришлось вытерпеть мучительное ожидание, пока Server 2016 обдумывал свой следующий шаг во время патча или обновления, должен возрадоваться. В целом, Server 2019 кажется более совершенным и быстрым, что является отличной новостью для тех, кто отвечает за поддержание уровней исправлений. Различия между Microsoft Server 2016 и 2019 К этому моменту довольно очевидно, чем эти две операционные системы различаются по функциональности и позициям: Azure и гибридная интеграция. Цель Server 2019 - включить Azure в ваш центр обработки данных, чтобы предоставить вам облачные сервисы, сохраняя при этом безопасность локального решения. Server 2019 также более эффективно использует гиперконвергентную инфраструктуру. Это означает, что компании могут запускать SDDC (Software Defined Data Centre - программно-определяемый центр обработки данных) с такими функциями, как хранилище и сеть, работающие как программный уровень. Экономическая выгода огромна, поскольку большая часть оборудования, необходимого для работы в таких средах, теперь виртуализирована как программное обеспечение. И что лучше всего, поскольку нет физической SAN (Storage Attached Network - сети с подключением к хранилищу), о которой нужно беспокоиться, вы можете масштабировать свои операции, просто добавив еще один узел Server 2019. Все это можно сделать из единого интерфейса Windows Admin Center. Microsoft Server 2016 начал предлагать согласованные с Azure службы и совместимость, и Server 2019 принимает это проектное решение и усиливает его. Server 2016 предлагает поддержку HCI, поскольку он был добавлен почти два года назад, но он не так тесно связан с ОС, как в Server 2019. Итоги К обновлению серверных операционных систем нельзя относиться легкомысленно. Фактически, большинство системных администраторов скажут вам, что вышестоящие руководители предпочли бы заблокировать версию и постараться сохранить ее в таком состоянии как можно дольше. Это дает очевидную краткосрочную экономию затрат, но в конечном итоге обойдется организации в расходах в долгосрочной перспективе, потому что в большинстве устаревших программ начинают появляться трещины, когда они не могут конкурировать в области гибкости. DevOps - это большое дело, и если у вас более старая инфраструктура, которая не может интегрировать такое мышление, вы будете отставать от своих конкурентов, когда они начнут масштабироваться и оставят вас позади. Server 2019 обеспечивает гибкость и маневренность, которые предоставляют компаниям инструменты, необходимые для автоматизации и ускорения бизнес-процессов. Если вы можете протестировать Server 2019 самостоятельно, то стоит потратить на это время. Если вы пока не можете отойти от 2016 года, значит, вы все еще в хорошей форме. Server 2019 со временем станет только лучше. Таким образом, вы можете обойтись без обновления сразу, но вам определенно следует рассмотреть это как часть пути обновления вашей компании.
img
В 2013 году, вместе с бета – релизом Asterisk 12 астериск - комьюнити был представлен новый API, который получил гордое название - ARI (Asterisk REST Interface). Что это и как им пользоваться, если вы любите php - рассказываем в статье. Зачем Asterisk нужен новый API? Все мы привыкли, что Asterisk имеет два интерфейса: Asterisk Manager Interface (AMI) и Asterisk Gateway Interface (AGI). AMI это асинхронный интерфейс, который используется для управления вызовами, инициацией звонков и всем, что попадает под определение «call control». AGI, в свою очередь, предоставляет синхронный интерфейс манипуляции одним каналом, являясь своего рода «прослойкой» между диалпланом и внешними скриптами. Важно отметить, что на время выполнения, AGI блокирует поток. В связке, оба интерфейса неплохо справляются с задачами, связанными с различного рода манипуляциями с каналами и диалпланом Asterisk. Но разработка сложного и многоуровневого приложения может стать по настоящему трудной задачей для разработчика, в которой придется задействовать AGI и AMI одновременно. Именно в этот момент на помощь приходит ARI (Asterisk REST Interface). Отметим, что ARI не заменяет AGI или AMI. Новый интерфейс позволяет разработчикам заменить управление на уровне диалплана внешними приложениями (скриптами). Тем самым, ARI упрощает жизнь разработчикам бизнес – приложений, которые используют Asterisk в качестве коммуникационной платформы. ARI дает девелоперам высокоуровневый REST интерфейс, через который доступно управление базовыми операциями Asterisk, например, такими как каналы, мосты (бриджи), конечные устройства, управление медиа – потоками, записью разговоров и так далее. Информация об этих объектах передается в асинхронном режиме событиями JSON поверх WebSocket. Только представьте: раньше, чтобы овладеть подобным набором инструментов, вам необходимо было иметь навыки программирования на C и разработать свой собственный модуль и внедрить в Asterisk. С использованием ARI, приложения могут быть написаны на вашем любимом языке, будь то Python, Ruby, PHP или JavaScript! Для удобства, ниже мы привели библиотеки и ссылки на них для различных языков программирования: Библиотека Язык программирования Ресурс ari4java Java https://github.com/l3nz/ari4java ari-py Python https://github.com/asterisk/ari-py AsterNET.ARI C#/.NET https://asternetari.codeplex.com/ node-ari-client JavaScript (node) https://github.com/asterisk/node-ari-client phpari PHP http://www.phpari.org/ Подведем итог: новый интерфейс ARI дает новые возможности не только для Asterisk комьюнити, но и для разработчиков бизнес приложений. От слов к делу, переходим к настройке. Настройка phpari Поскольку ARI это технология, базирующаяся на WebSocket, первым делом необходимо внести некоторые настройки в файл http.conf, который находится в директории /etc/asterisk/: cd /etc/asterisk/ vim http.conf Приводим файл к следующему виду: [general] enabled = yes bindaddr = 127.0.0.1 Далее, «сетапим» файл ari.conf, открыв его командой vim ari.conf: [general] enabled = yes pretty = yes [имя_вашего_пользователя] type = user read_only = no password = пароль_для_пользователя В секции [имя_вашего_пользователя], укажите юзернейм, а в секции password его соответствующий пароль. Перегружаем Asterisk: asterisk –rv core restart now Теперь мы установим phpari. Установку будем производить с помощью composer: Если у вас не установлен composer, вы можете скачать его по этой ссылке. Открываем для редактирования файл composer.json и добавляем в него следующий код: { "require": { "php": ">=5.3.9", "educoder/pest": "1.0.0", "devristo/phpws": "dev-master", "greenfieldtech-nirs/phpari": "dev-master" } } После чего запускаем команду: composer install Необходимая библиотека будет загружена. Переходим в директорию /vendor/greenfieldtech-nirs/phpari и открываем для редактирования файл phpari.ini: cd /vendor/greenfieldtech-nirs/phpari vim phpari.ini Редактируем следующим образом: [general] debug=0 logfile=console ; #если хотите логировать ARI в консоль, то оставьте данное поле без изменений. Если хотите логировать в файл, то укажите полный путь к нему; [asterisk_ari] username= имя_вашего_пользователя password= пароль_для_пользователя host=IP_адрес_Asterisk port=8088 endpoint=/ari transport=ws ; #нешфированный транспорт, wss для шифрования; Отлично. Теперь давайте соберем простенький .php скрипт, который будет показывать активные каналы. Для этого, в директории, где у нас находится скачанная библиотека phpari и соответственно директория /vendor, создаем файл ari.php и наполяем его следующей конфигурацией: require_once "vendor/autoload.php"; $ariCon = new phpari(); print_r($ariCon->channels()->channel_list()); Сохраняем. Сделайте 1 активный вызов на вашем Asterisk (например, позвонив с софтфона на софтфон). Переходим в консоль, и даем команду на выполнение этого скрипта: php ari.php Если все сделано правильно, в консоли мы увидим JSON – ответ, в котором будут переданы параметры активного канала: context, exten, caller, accountcode и прочие. Как вызвать приложение? Вызвать приложение из диалплана очень просто. Для этого, необходимо использовать Stasis: exten => _XXXX,1,Stasis(ваше_приложение) Что именно умеет ARI? Кратко поговорим о том, какие именно операции умеет совершать ARI: Метод Путь Описание GET /channels/{channelId} Получить информацию о канале с channelId POST /channels/{channelId} Создать канал с указанным channelId DELETE /channels/{channelId} Удалить (Hang Up) канал POST /channels/{channelId}/continue Возврат в диалплан (выход из скрипта) POST /channels/{channelId}/continue Возврат в диалплан (выход из скрипта) POST /channels/{channelId}/answer Ответить на канал POST /channels/{channelId}/mute "Замьютить" канал DELETE /channels/{channelId}/mute "Снять мьют" с канала POST /channels/{channelId}/hold Поставить вызов на удержание DELETE /channels/{channelId}/hold Снять вызов с удержания POST /channels/{channelId}/play Воспроизвести медиа файл POST /channels/{channelId}/record Начать запись GET /bridges Лист всех активных мостов (бриджей) GET /bridges Лист всех активных мостов (бриджей) POST /bridges/{bridgeId}/addChannel Добавить канал к бриджу POST /bridges/{bridgeId}/removeChannel Удалить канал с бриджа GET /endpoints Список оконечных устройств GET /endpoints/{tech} Список оконечных устройств, которые функционируют по указанной технологии GET /endpoints/{tech}/{resource} Детальная информация по оконечному устройству GET /sounds Список звуков GET /sounds/{soundId} Список звуков
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59