По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В предыдущих статьях мы говорили о классическом связующем дереве и rapid spanning three. MST (Multiple Spanning Tree) - это третий вариант связующего дерева. Multiple Spanning Tree Взгляните на топологию выше. У нас есть три коммутатора и много VLAN. Всего существует 199 VLAN. Если мы запускаем PVST или Rapid PVST, это означает, что у нас имеется 199 различных вычислений для каждой VLAN. Это требует большой мощности процессора и памяти. Коммутатор B является корневым мостом для сети от VLAN 100 до VLAN 200. Это, означает, что интерфейс fa0/17 коммутатора A будет заблокирован. Мы будем иметь 100 вычислений связующего дерева, но все они выглядят одинаково для этих VLAN. То же самое относится и к VLAN 201 – 300. Коммутатор C является корневым мостом для VLAN от 201 до 300. Интерфейс fa0/14 на коммутаторе A, вероятно, будет заблокирован для всех этих VLAN. Два разных результата, но мы все еще имеем 199 различных вариантов исполнения связующего дерева. Это пустая трата мощности процессора и памяти, верно? MST (Multiple Spanning Tree) сделает это за нас. Вместо вычисления связующего дерева для каждой VLAN, мы можем использовать instance и карту VLAN для каждого instance. Для сети выше мы могли бы сделать что-то вроде этого: instance 1: VLAN 100-200 instance 2: VLAN 201-300 Логично, не так ли? Для всех этих VLAN требуется только два вычисления связующего дерева (instance). MST работает с концепцией регионов. Коммутаторы, настроенные для использования MST, должны выяснить, работают ли их соседи под управлением MST. Если коммутаторы имеют одинаковые атрибуты, они будут находиться в одном регионе. Это необходимо, чтобы была возможность разделения сети на один или несколько регионов. А вот атрибуты, которые должны соответствовать: MST имя конфигурации MST номер редакции конфигурации MST экземпляр в таблице сопоставления VLAN Если коммутаторы имеют одинаковые настроенные атрибуты, они будут находиться в одном регионе. Если атрибуты не совпадают, то коммутатор рассматривается как находящийся на границе области. Он может быть подключен к другому региону MST, но также разговаривать с коммутатором, работающим под управлением другой версии связующего дерева. Имя конфигурации MST — это то, что вы можете придумать, оно используется для идентификации региона MST. Номер версии конфигурации MST — это также то, что вы можете придумать, и идея этого номера заключается в том, что вы можете изменить номер всякий раз, когда вы меняете свою конфигурацию. VLAN будут сопоставлены с экземпляром с помощью таблицы сопоставления MST instance to VLAN. Это то, что мы должны сделать сами. Другие версии STP В пределах области MST у нас будет один instance связующего дерева, который создаст свободную от цикла топологию внутри области. При настройке MST всегда существует один instance по умолчанию, используемый для вычисления топологии в пределах региона. Мы называем это IST (внутреннее связующее дерево). По умолчанию Cisco будет использовать instance 0 для запуска IST. На случай, если вам интересно, это rapid spanning tree, которое мы запускаем в пределах MST. Мы могли бы создать instance 1 для VLAN 100-200 и instance 2 для VLAN 201-300. В зависимости от того, какой коммутатор станет корневым мостом для каждого instance, будет заблокирован различный порт. Коммутатор за пределами области MST не видит, как выглядит область MST. Для этого коммутатора все равно, что говорить с одним большим коммутатором или «черным ящиком».
img
Если Вы наконец поняли, что повсюду окружены контейнерами и обнаружили, что они решают массу проблем и имеют много преимуществ: Контейнеры вездесущи - ОС, версии библиотек, конфигурации, папки и приложения помещаются в контейнер. Вы гарантируете, что та же самая задача, которая была протестирована в QA, достигнет производственной среды с таким же поведением. Контейнеры упрощены - объем памяти контейнера невелик. Вместо сотен или тысяч мегабайт контейнер будет выделять память только для основного процесса. Контейнеры быстрые - Вы можете запустить контейнер для начала работы так же быстро, как типичный процесс Linux. Вместо минут можно запустить новый контейнер за несколько секунд. Тем не менее, многие пользователи по-прежнему относятся к контейнерам так же, как к типичным виртуальным машинам, и забывают про важную характеристику: они одноразовые. Мантра о контейнерах: “Контейнеры эфемерны”. Эта характеристика заставляет пользователей поменять свое мышление относительно того, как они должны обращаться с контейнерами и управлять ими; и я объясню, чего НЕ следует делать, чтобы продолжать извлекать наилучшие преимущества контейнеров. 10 вещей, которых следует избегать в Docker контейнерах Не хранить данные в контейнерах - контейнер может быть остановлен, удален или заменен. Приложение версии 1.0, работающее в контейнере, может быть легко заменено версией 1.1 без какого-либо неблагоприятного воздействия или потери данных. Поэтому, если нужно сохранить данные, сделайте это на диске. В этом случае следует также позаботиться о том, чтобы два контейнера записывали данные на один и тот же диск, что может привести к повреждению. Убедитесь, что приложения могут записывать данные в хранилище объектов. Не разделять свое приложение на две части - так как некоторые люди видят контейнеры в роли виртуальной машин и поэтому большинство из них склонны думать, что они должны применять свое приложение только в существующих работающих контейнерах. Это может быть справедливо на этапе разработки, на котором Вам необходимо непрерывно разрабатывать и налаживать процесс; но для непрерывной доставки (CD) в QA и производства, Ваше приложение должно быть частью образа. Помните: Контейнеры нельзя изменить. Не создавать большие образы - большой образ будет труднее распространить. Убедитесь в наличии только необходимых файлов и библиотек для запуска приложения/процесса. Не устанавливайте ненужные пакеты и не запускайте обновления (yum update), которые загружают много файлов на новый слой образы. Не использовать однослойный образ - чтобы эффективно пользоваться многоуровневой файловой системой, всегда создавайте собственный базовый слой образы для операционной системы, а также другой слой для определения имени пользователя, слой для установки во время выполнения, слой для конфигурации и, наконец, слой для приложения. Будет проще воссоздать образ, управлять им и использовать его. Не создавать образы из запущенных контейнеров - другими словами, не используйте слово docker commit для создания образа. Этот способ не приносит пользы, и его следует полностью избегать. Всегда используйте полностью воспроизводимый Dockerfile или любой другой S2I (от источника к изображению) подход, и Вы можете отследить изменения в Dockerfile, если сохранить его в хранилище системы управления версиями (git). Не использовать latest (последний) тег – он подобен SNAPSHOT для пользователей Maven. Метки подключаются из-за слоистой файловой природы контейнеров. Вы ведь не хотите иметь сюрпризы при построении образа несколько месяцев, а потом выяснить, что приложение не может быть запущено, так как родительский слой (из-за Dockerfile) был заменен новой версией, которая не является обратно совместимой, или из кэша сборки была получена неправильная "последняя" версия. Тега latest также следует избегать при применении контейнеров в производстве, так как невозможно отследить, какая версия образа выполняется. Не выполнять более одного процесса в одном контейнере - контейнеры идеально подходят для выполнения лишь одного процесса (HTTP, сервер приложений, база данных), но если имеется более одного процесса, могут возникнуть дополнительные проблемы с управлением, извлечением журналов и обновлением их по отдельности. Не хранить учетные данные в виде образов. Используйте переменные среды, ведь для этого не требуется жестко кодировать имя пользователя/пароль в образе. Используйте переменные среды для получения этой информации вне контейнера. Отличный пример этого принципа - образ Постгреса. Не запускать процессы от имени пользователя root - "По умолчанию docker контейнеры выполняются от имени пользователя root. По мере «взросления» docker контейнеров могут стать доступны секретные по умолчанию параметры. На данный момент требуемый root опасен для других и может быть доступен не во всех средах. Ваш образ должен использовать инструкцию USER, чтобы указать пользователя, не являющегося root, для контейнеров, которые будут запускаться". Не полагайтесь на IP-адреса - каждый контейнер имеет свой собственный внутренний IP-адрес, и он может измениться, если вы запустите и остановите контейнер. Если приложению или микросервису требуется связь с другим контейнером, используйте переменные среды для передачи соответствующего имени хоста и порта из одного контейнера в другой.
img
Привет, дорогой читатель! Если ты когда-нибудь задавался вопросом – как перенести файл с хостовой машины на виртуальную в Hyper-V, то эта статья для тебя! Дело в том, что не всегда представляется возможным организовать сетевую связность между хостом и виртуальной машиной, а иногда это и вовсе не нужно. К счастью, в Hyper-V предусмотрена простая возможность переноса файлов прямо на виртуальные машины (как Windows так и Linux и другие) с помощью PowerShell и сейчас мы про неё расскажем. Важно отметить, что данная функционал стал доступен только в 3 версии PowerShell. Поэтому проверьте установленную у себя версию. Для этого в консоли PowerShell введите команду $PSVersionTable Процесс Итак, сразу раскроем все карты. Для переноса файлов на гостевые (виртуальные) машины нужно использовать команду со следующим синтаксисом: Copy-VMFile -Name “Имя виртуальной машины” -SourcePath ?Путь кфайлукоторыйхотим перенести? -DestinationPath ?Путь кпапке на виртуальной машинекуда хотимположить файл? -CreateFullPath -FileSource Host Основой команды является часть Copy-VMFile, которая, в терминологии PowerShell, называется командлетом (Cmdlet) далее следуют ключи командлета, определяющие параметры и правила выполнения команды. Например, в примере выше, c помощью ключа -Name мы указываем имя виртуальной машины, на которую хотим скопировать файл, путь к которому указываем в ключе -SoucePath. Директория, в которую мы хотим поместить файл на виртуальной машине указывается в ключе -DestinationPath. Ключ -CreateFullPath создаст директорию, если её ещё нет. Ну и -FileSource Host означает, что источником, с которого мы переносим файл является хостовый сервер. Однако, если вы выполните команду на текущем этапе без предварительной подготовки виртуальной машины, то получите следующую ошибку: Чтобы этого избежать, необходимо предварительно включить в параметрах виртуальной машины поддержку гостевых сервисов (Guest Services). Для этого зайдите в параметры виртуальной машины, далее выберите Сервисы Интеграции (Integration Services) и поставьте галочку напротив Гостевые сервисы (Guest Services). Или просто введите команду Enable-VMIntegrationService -Name ?Guest Service Interface? -VMName “Имя виртуальной машины” После этого следует ввести команду Copy-VMFiles ещё раз, после чего начнётся копирование файлов с хоста в указанную директорию на виртуальной машине. Данный способ подходит для файлов любых размеров, ограничением является только используемое виртуальной машиной дисковое пространство.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59