По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Несмотря на доступ к все более эффективному и мощному оборудованию, операции, выполняемые непосредственно на традиционных физических (или «чистых») серверах, неизбежно сталкиваются со значительными практическими ограничениями. Стоимость и сложность создания и запуска одного физического сервера говорят о том, что эффективное добавление и удаление ресурсов для быстрого удовлетворения меняющихся потребностей затруднено, а в некоторых случаях просто невозможно. Безопасное тестирование новых конфигураций или полных приложений перед их выпуском также может быть сложным, дорогостоящим и длительным процессом. Исследователи-первопроходцы Джеральд Дж. Попек и Роберт П. Голдберг в статье 1974 года («Формальные требования к виртуализируемым архитектурам третьего поколения» (“Formal Requirements for Virtualizable Third Generation Architectures”) - Communications of the ACM 17 (7): 412–421) предполагали, что успешная виртуализация должна обеспечивать такую среду, которая: Эквивалента физическому компьютеру, поэтому доступ программного обеспечения к аппаратным ресурсам и драйверам должен быть неотличим от невиртуализированного варианта. Обеспечивает полный контроль клиента над аппаратным обеспечением виртуализированной системы. По возможности эффективно выполняет операции непосредственно на базовых аппаратных ресурсах, включая ЦП. Виртуализация позволяет разделить физические ресурсы вычислений, памяти, сети и хранилища («основополагающая четверка») между несколькими объектами. Каждое виртуальное устройство представлено в своем программном обеспечении и пользовательской среде как реальный автономный объект. Грамотно настроенные виртуальные изолированные ресурсы могут обеспечить более защиту приложений приложений без видимой связи между средами. Виртуализация также позволяет создавать и запускать новые виртуальные машины почти мгновенно, а затем удалять их, когда они перестанут быть необходимыми. Для больших приложений, поддерживающих постоянно меняющиеся бизнес-требования, возможность быстрого вертикального масштабирования с повышением или понижением производительности может означать разницу между успехом и неудачей. Адаптивность, которую предлагает виртуализация, позволяет скриптам добавлять или удалять виртуальные машины за считанные секунды, а не недели, которые могут потребоваться для покупки, подготовки и развертывания физического сервера. Как работает виртуализация? В невиртуальных условиях, архитектуры х86 строго контролируют, какие процессы могут работать в каждом из четырех тщательно определенных уровней привилегий (начиная с Кольца 0 (Ring 0) по Кольцо 3). Как правило, только ядро операционной системы хоста имеет какой-либо шанс получить доступ к инструкциям, хранящимся в кольце под номером 0. Однако, поскольку вы не можете предоставить нескольким виртуальным машинам, которые работают на одном физическом компьютере, равный доступ к кольцу 0, не вызывая больших проблем, необходим диспетчер виртуальных машин (или «гипервизор»), который бы эффективно перенаправлял запросы на такие ресурсы, как память и хранилище, на виртуализированные системы, эквивалентные им. При работе в аппаратной среде без виртуализации SVM или VT-x все это выполняется с помощью процесса, известного как ловушка, эмуляция и двоичная трансляция. На виртуализированном оборудовании такие запросы, как правило, перехватываются гипервизором, адаптируются к виртуальной среде и возвращаются в виртуальную машину. Простое добавление нового программного уровня для обеспечения такого уровня организации взаимодействия приведет к значительной задержке практически во всех аспектах производительности системы. Одним из успешных решений было решение ввести новый набор инструкций в ЦП, которые создают, так называемое, «кольцо 1», которое действует как кольцо 0 и позволяет гостевой ОС работать без какого-либо влияния на другие несвязанные операции. На самом деле, при правильной реализации виртуализация позволяет большинству программных кодов работать как обычно, без каких-либо перехватов. Несмотря на то, что эмуляция часто играет роль поддержки при развертывании виртуализации, она все же работает несколько иначе. В то время как виртуализация стремится разделить существующие аппаратные ресурсы между несколькими пользователями, эмуляция ставит перед собой цель заставить одну конкретную аппаратную/программную среду имитировать ту, которой на самом деле не существует, чтобы у пользователей была возможность запускать процессы, которые изначально было невозможно запустить. Для этого требуется программный код, который имитирует желаемую исходную аппаратную среду, чтобы обмануть ваше программное обеспечение, заставив его думать, что оно на самом деле работает где-то еще. Эмуляция может быть относительно простой в реализации, но она почти всегда несет за собой значительные потери производительности. Согласно сложившимся представлениям, существует два класса гипервизоров: Type-1 и Type-2. Bare-metal гипервизоры (исполняемые на «голом железе») (Type-1), загружаются как операционная система машины и – иногда через основную привилегированную виртуальную машину – сохраняют полный контроль над аппаратным обеспечением хоста, запуская каждую гостевую ОС как системный процесс. XenServer и VMWare ESXi – яркие примеры современных гипервизоров Type-1. В последнее время использование термина «гипервизор» распространилось на все технологии виртуализации хостов, хотя раньше оно использовалось только для описания систем Type-1. Первоначально более общим термином, охватывающим все типы систем, был «Мониторы виртуальных машин». То, в какой степени люди используют термин «мониторы виртуальных машин» все это время, наводит меня на мысль, что они подразумевают «гипервизор» во всех его интерпретациях. Гипервизоры, размещенные на виртуальном узле (Type-2) сами по себе являются просто процессами, работающими поверх обычного стека операционной системы. Гипервизоры Type-2 (включая VirtualBox и, в некотором роде, KVM) отделяют системные ресурсы хоста для гостевых операционных систем, создавая иллюзию частной аппаратной среды. Виртуализация: паравиртуализация или аппаратная виртуализация Виртуальные машины полностью виртуализированы. Иными словами, они думают, что они обычные развертывания операционной системы, которые живут собственной счастливой жизнью на собственном оборудовании. Поскольку им не нужно взаимодействовать со своей средой как-то иначе, чем с автономной ОС, то они могут работать с готовыми немодифицированными программными стеками. Однако раньше за такое сходство приходилось платить, потому что преобразование аппаратных сигналов через уровень эмуляции занимало дополнительное время и циклы. В случае с паравиртуализацией (PV – Paravirtualization) паравиртуальные гости хотя бы частично осведомлены о своей виртуальной среде, в том числе и том, что они используют аппаратные ресурсы совместно с другими виртуальными машинами. Эта осведомленность означает, что хостам PV не нужно эмулировать хранилище и сетевое оборудование, и делает доступными эффективные драйверы ввода-вывода. На первых порах это позволяло гипервизорам PV достигать более высокой производительности для операций, требующих подключения к аппаратным компонентам. Тем не менее, для того, чтобы предоставить гостевой доступ к виртуальному кольцу 0 (т.е. кольцу -1), современные аппаратные платформы – и, в частности, архитектура Intel Ivy Bridge – представили новую библиотеку наборов инструкций ЦП, которая позволила аппаратной виртуализации (HVM – Hardware Virtual Machine) обойти узкое место, связанное с ловушкой и эмуляцией, и в полной мере воспользоваться преимуществами аппаратных расширений и немодифицированных операций ядра программного обеспечения. Также значительно повысить производительность виртуализации может последняя технология Intel – таблицы расширенных страниц (EPT – Extended Page Tables). В связи с этим, в большинстве случаев можно обнаружить, что HVM обеспечивает более высокую производительность, переносимость и совместимость. Аппаратная совместимость Как минимум, несколько функций виртуализации требуют аппаратную поддержку, особенно со стороны ЦП хоста. Именно поэтому вы должны убедиться, что на вашем сервере есть все, что вам необходимо для задачи, которую вы собираетесь ему дать. Большая часть того, что вам нужно знать, храниться в файле /proc/cpuinfo и, в частности, в разделе «flags» (флаги) каждого процессора. Однако вам нужно знать, то искать, потому что флагов будет очень много. Запустите эту команду, чтобы посмотреть, что у вас под капотом: $ grep flags /proc/cpuinfo Контейнерная виртуализация Как мы уже видели ранее, виртуальная машина гипервизора – это полноценная операционная система, чья связь с аппаратными ресурсами «основополагающей четверки» полностью виртуализирована – она думает, что работает на собственном компьютере. Гипервизор устанавливает виртуальную машину из того же ISO-образа, который вы загружаете и используете для установки операционной системы непосредственно на пустой физический жесткий диск. Контейнер в свою очередь фактически представляет собой приложение, запускаемое из скриптообразного шаблона, которое считает себя операционной системой. В контейнерных технологиях, таких как LXC и Docker, контейнеры – это не что иное, как программные и ресурсные (файлы, процессы, пользователи) средства, которые зависят от ядра хоста и представления аппаратных ресурсов «основополагающей четверки» (т.е. ЦП, ОЗУ, сеть и хранилище) для всего, то они делают. Конечно, с учетом того, что контейнеры фактически являются изолированными расширениями ядра хоста, виртуализация Windows (или более старых или новых версий Linux с несовместимыми версиями libc), например, на хосте Ubuntu 16.04 будет сложна или невозможна. Но эта технология обеспечивает невероятно простые и универсальные вычислительные возможности. Перемещение Модель виртуализации также позволяет использовать широкий спектр операций перемещения, копирования и клонирования даже из действующих систем (V2V). Поскольку программные ресурсы, определяющие виртуальную машину и управляющие ею, очень легко идентифицировать, то обычно не требуется очень много усилий для дублирования целых серверных сред в нескольких местах и для разных целей. Иногда это не сложнее, чем создать архив виртуальной файловой системы на одном хосте, распаковать его на другом хосте по тому же пути, проверить основные сетевые настройки и запустить. Большинство платформ предлагают единую операцию командной строки для перемещения гостей между хостами. Перемещение развертываний с физических серверов на виртуализированные среды (P2V) иногда может оказаться немного сложнее. Даже создание клонированного образа простого физического сервера и его импорт в пустую виртуальную машину может сопровождаться определенными трудностями. И как только все это будет выполнено, вам, возможно, придется внести некоторые корректировки в системную архитектуру, чтобы можно было использовать возможности, предлагаемые виртуализацией, в полную силу. В зависимости от операционной системы, которую вы перемещаете, вам также может потребоваться использование паравиртуализированных драйверов для того, чтобы ОС могла корректно работать в своем «новом доме». Как и в любых других ситуациях управления сервером: тщательно все продумывайте заранее.
img
Edge computing (дословно можно перевести как "граничные вычисления") - это сетевая философия, основанная на том, что вычисления должны совершаться как можно ближе к источнику сырых данных. Цель сего действа в сильном сокращении задержек и ширины канала связи. Если говорить проще, то edge computing - это когда меньше всякой всячины вычисляется к облаке или ЦОДе, и больше вычисляется непосредственно на месте - то есть на локальном ПК, IoT устройстве или на граничном сервере. Таким образом сокращается необходимость поддерживать в требуемом состоянии дорогостоящие каналы связи (представьте себе, что для вычислений отправляете очень объемную информацию - к примеру, видео высокой четкости) Что такое граница сети? Для устройств, подключенных к сети Интернет, границей будет точка, где это устройства непосредственно подключается к Интернету. Конечно, определение экстремально размытое; к примеру, компьютер пользователя или процессор внутри IoT камеры могут быть теми самыми точками, однако, сетевой маршрутизатор также вполне попадает под это определение. Но важно одно: граница будет гораздо ближе к устройству (с географической точки зрения), нежели к облачным серверам. Приведем пример edge computing-а Представим себе некое здание, в котором понаставили десятки IoT камер очень высокого разрешения. Эти камеры относительно безмозглые, т.к они просто отдают сырой видеосигнал на облако. Облако, в свою очередь, пропускает весь этот сырой видео трафик через приложение, которое умеет определять движение, чтобы хранить только максимально полезную информацию. Представьте себе требованию к Интернет-каналу в таком случае: ежесекундно передаются мегабайты информации, и к тому же получается высокая нагрузка на облачные сервера, которые занимаются вычислениями - они обязаны обрабатывать все эти огромные объемы информации. А теперь представьте себе, что сервер, определяющий движение был помещен на границу сети (той самой, в которой находится наше воображаемое здание). Что если каждая камера будет использовать свои собственные вычислительные мощности для запуска там приложения, которое будет определять движение? Очевидно, тогда в облако будет уходить только "полезный" трафик. Кроме того, на облачные сервера ляжет только задача по хранению важной информации, что де-факто означает возможность этого облака поддерживать связь с гораздо большим количеством камер без перегрузки. Вот примерно так и выглядит пример edge computing. Преимущества концепции edge computing Как видно в примере выше, данный концепт позволяет минимизировать загрузку Интернет-канала и нагрузку на вычислительные мощности облака. Полоса пропускания и вычислительные мощности, к сожалению, конечны и стоят реальных денег. С каждым зданием и офисом, которые будут оборудованы "умными" камерами, принтерами, термостатами и даже тостерами, аналитики предсказывают, что к 2025 году в мире будет установлено 75 миллиардов IoT устройств. Чтобы все эти устройства корректно работали, большой процент вычислений должен быть перенесен на edge-и. Следующее преимущество - это снижение задержки. Каждый раз, когда устройство пытается подключиться к какому-нибудь удаленному серверу, появляется задержка. Гипертрофированный пример: когда двое коллег в одном офисе чатятся в аське, они могут почувствовать сильную задержку, так как каждое сообщение "улетает" во внешний мир, подключается к некому очень удаленному серверу и также возвращается обратно в эту сеть. Если бы весь этот процесс происходил на границе сети, то эта задержка могла бы быть значительно снижена. Также, когда пользователи используют тонны веб-приложений, которые постоянно подключаются к внешним серверам, они могут чувствовать эти самые задержки. Длительность задержек будет зависеть от того, какова их полоса пропускания и где находятся сервера, но этих задержек можно легко избежать. Правильно, если воткнуть все эти сервера на границу этой сети. Если подытожить, то общие плюсы этого концепта таковы: Снижение задержек Снижение затрат путем использования более дешевых каналов связи Снижение затрат путем уменьшения нагрузки на удаленные вычислительные ресурсы Минусы данного подхода На мой взгляд, есть два основных минуса: первый - это сильное увеличение сложности устройств и повышенный риск компрометации этих устройств - по сути, даже банальный термостат становится полноценным компьютером, который, как мы все знаем, может быть легко подвергнут взлому. Кроме того, из-за увеличения сложности устройств и повышения их вычислительной мощности серьезно возрастает их стоимость. Однако очевидно, что технологии шагают семимильными шагами - компьютер 30 лет назад был в тысячи раз слабее современного смартфона, а стоили они гораздо дороже.
img
Порой появляется необходимость делиться своими файлами с друзьями, которые живут в соседней квартире и делят с вами вашу локальную сеть. Или же у вас есть NAS сервер и вы решили организовать свое файловое хранилище, куда могли бы получить доступ с любой точки мира. Правда, закачать файлы в облако и пользоваться оттуда никто не отменял, но туда вы не поместите терабайты информации, которая хранится у вас на домашнем сетевом хранилище. Вот тут на помощь приходит локальный FTP сервер. Сетевые файловые накопители имеют встроенную возможность и соответствующие средства для организации данного сервиса. О возможностях конкретных моделей можно узнать на сайте производителя. Но мы решили создать свой сервер на обычном домашнем ноутбуке. Для претворения в жизнь нашей затеи выбрали бесплатную и достаточно известную программу FileZilla. С клиентской частью наверное вам приходилось работать чаще, но есть еще и серверная часть, которая позволяет создавать свой FTP сервер. Качаем программу с официально сайта и устанавливаем. Установка стандартная поэтому покажу ту часть, которая может вызвать вопросы. На этом месте установки выбираем Установить как службу, чтобы при загрузке компьютера сервер запускался автоматически. Порт можно поменять, но особого смысла нет, так как он используется только для локального подключения к серверу. Далее переходим к настройке самой программы. Тут тоже буду останавливаться только на основных моментах, которые критичны для работы системы. Итак, первым делом в меню Edit выбираем Settings. В пункте General Settings выставляем значение как на рисунке: Listen on these ports указывает на то, какие порты программа должна прослушивать для входящих соединений. Для большей безопасности их можно изменить и поставить любой порт выше 1023. В принципе можно и выше 1, но хорошим тоном считается выбор не общеизвестных портов, дабы избежать конфликтов. Number of threads указывает на число потоков. Рекомендуется устанавливать равным числу установленных процессоров умноженных на 2. Connection timeout устанавливает время в сессии для поключенного пользователя. No Transfer timeout здесь указывается время после последнего трансфера файлов, по истечении которого соединение с сервером будет прервано. Login timeout задает время ожидания ввода пользователем учётных данных. В принципе в локальной сети этих настроек вполне достаточно. Следующий пункт Passive mode settings, который настраивается если вы подключаетесь к вашему серверу извне, а сервер стоит за маршрутизатором, который в свою очередь преобразует ваш серый IP, который начинается с 192.168. в белый, то бишь публичный, который виден всему Интернету. Use custom ranges указываете порты, которые система выборочно откроет при инициализации подключения извне. Use following IP указываете ваш внешний IP адрес, который можете посмотреть в Интернете вбив в поисковик ключевое слово my ip. Retrieve external IP address from тут остановлюсь поподробней. Дело в том, что внешний IP у обычных поользователей меняется. И если вы укажете текущий адрес, то через некоторое время он будет недоступен. Тут на помощь приходит Dynamic DNS. Это такой вид услуги, которая позволяет обращаться к вашему внешнему IP адресу по доменному имени, например mycomp.com. Для этого нужно зарегистрироваться на одном из многочисленных сервисов, предоставляющих данную услугу, выбрать себе доменное имя и настроить соответствующим образом маршрутизатор. Но обо всем по порядку. Хотя на рынке много поставщиков услуги указанного вида, я остановил свой выбор на noip.com. Во-первых, потому что этот сервис поддерживается моим роутером. А во-вторых, здесь бесплатно предоставляется доменное имя на месяц, а по истечении вы просто заходите и заново регистрируете ваш домен. Для регистрации переходим на сайт noip.com. В главном окне в разделе Quick Add вписываем любое название и выбираем домен третьего уровня. Нажимаем Add hostname и наш домен готов. Затем открываем панель управления маршрутизатором, переходим на вкладку Динамический DNS, выбираем поставщика услуг, вводим имя пользователя указанный при регистрации на сайте сервиса, пароль и доменное имя. Включаем DNS и нажимаем Войти. Если всё указано правильно состояние подключения будет "Успешно!" После всего этого в настройка FileZilla в строке Retrieve external IP address from указываем наш DNS адрес. Дело остается за малым создать пользователя и протестировать подключение. Для этого в меню Edit выбираем Users. В открывшемся окне нажимаем на Add, задаём ему имя, ставим галочки перед Enable account и Password и вводим пароль. Все остальные настройки можно не менять: Затем создаем папку для пользователя, даем ему нужные права и указываем как домашнюю директорию Set as home dir, чтобы при подключении пользователя перебросило сразу в нужное место. Можно для каждого пользователя создать отдельную папку, а также назначать разные уровни доступа на одну и ту же директорию. Но что если вы всё это сделали, но друзья из Канады всё же не могут подключиться? Проблем могут быть две. Первая, не настроен переброс портов на роутере, вторая не прописано нужное правило на сетевом экране. Так настроим! Для переброса портов на маршрутизаторе TP-Link переходим на вкладку Переадресация -> Виртуальные сервера. По умолчанию здесь никаких записей нет. Нажимаем на Добавить и вводим нужные значения. Порт сервиса указываем внешний порт, на который будут идти обращения на наш IP. Здесь можно прописать и свои значения, но при подключении извне нужно будет прописать их в настройках клиента. Стандартный порт FTP 21. Внутренний порт порт, который слушается на нашем сервере. В нашем случае это тоже 21. IP-адрес адрес компьютера, где установлена серверная часть программы FileZilla. Протоколы тут выбор не велик либо TCP, либо UDP. О протоколах можно говорить долго, но вкратце TCP гарантирует доставку отправленного пакета, но работает медленней, так как приходится ждать подтверждения получения каждой порции данных. UDP же шустрее TCP, но его не заботит получит ли адресат пакет или нет. FTP работает поверх TCP. Есть еще набор предопределённых портов, который можно выбрать из выпадающего списка. Если всё стандартно, то выбираем FTP и нам не придётся вручную вводить все значения. Затем нажимаем на Сохранить. Далее переходим к настройке межсетевого экрана. Для начала, чтобы убедиться, что именно он блокирует попытки подключения, лучше его вовсе отключить. Если всё заработало, то переходим к соответствующим настройкам. На Панели управления выбираем Windows Defender Firewall -> Advanced Settings. Нажимаем на Inbound Rules (Правила для входящих соединений) и в правой панели выбираем New Rule. В открывшемся окне значения ставим как на рисунке: Затем указываем порты и протоколы, для которых хотим разрешить соединение. Для FTP указываем TCP/21: Нажимаем Next, указываем действие Разрешить (Allow the connection): Профиль указывает для каких сетей будет действовать данное правило. Выбираем все: В конце вводим название правила и нажимаем Finish. Для Passive Mode делаем все тоже самое, только значение портов указываем те, что были прописаны в настройках программы в пункте Passive mode settings. Тут мы настроили правило для входящих подключений. Также нужно настроить правило для исходящих соединений. Все то же самое, просто настраивается в Outbound Rules (Правила для исходящих подключений). После этого все должно начать работать. Если что-то не работает, попробуйте отключить межсетевой экран антивируса, если там таковой есть. В любом случае программа вам даст подсказки: код и описание ошибки, по причине которой не смог подключиться пользователь. (В данном случае ошибок нет, цель рисунка наглядно показать как выглядит сообщение программы)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59