Используя resize2fs со смещением файловой системы

Существует несколько возможных решений этой проблемы, и они все довольно сложны. Это - самая прозрачная конфигурация, о которой я мог думать, но честно я переключу хосты, если их передача SMTP будет ненадежна. Существует много хороших, дешевых поставщиков почтовых сервисов. Кроме того, рассмотрите использование IMAP вместо POP3, поскольку он облегчит проблемы с синхронизацией, вероятно, для явлений результатом такой установки.

Решение является сложным из-за необходимой связи между Агентом передачи почты (MTA) и Агентом доставки почты (MDA). Для электронного письма для существования на сервере POP3 (MDA) это, должно быть, было поставлено через ненадежный сервер SMTP (MTA). Ваш MTA не может хранить сообщения на удаленном MDA, и удаленный MTA не может отправить сообщения на Ваш MDA. Без полной синхронизации сообщений в обоих направлениях электронная почта внутрикомпании ("отправка между адресами электронной почты на нашей доменной" части) отправленный от офиса будет только сохранена на локальном MDA. Это означает, что пользователи, работающие далеко от офиса, не получили бы внутренние электронные письма при проверке размещенной учетной записи POP3.

Вам будет нужно в минимуме:

  • MTA для SMTP - Курьер является значением по умолчанию для CentOS и хорошего выбора
  • Брандмауэр (для IP/перенаправления портов) - netfilter или rinetd будет работать
  • MDA и Прокси для учетных записей POP3/IMAP - Гибель является, вероятно, лучшей, у Курьера есть эта функциональность

Локальный MTA для резервного копирования SMTP

Добавьте сервер SMTP своего почтового узла (удаленный MTA) в /etc/courier/esmtproutes (или везде, где тот файл установлен на CentOS) заставить Курьера передать все сообщения к нему. Когда SMTP Вашего хоста снизится, локальный MTA поставит исходящую почту в очередь и повторит доставку к удаленному MTA в настраиваемом интервале.

Перенаправление портов

Настройте свой брандмауэр для передачи всего исходящего трафика на порте 25 к локальному MTA.

Можно реализовать только вышеупомянутое для самой простой конфигурации. Это не позволило бы внутренней почте продолжаться как нормальное, но это сделает удаленное время простоя MTA менее примечательным

Локальный MTA с размещенным доменом

Добавьте свой домен компании как размещенный домен для Курьера (локальный MTA) в /etc/courier/hosteddomains. Это переопределит smarthost и передаст сообщения согласно настроенным правилам маршрутизации. См. makehosteddomains и Транспортные модули для получения дополнительной информации.

Локальный MDA и Прокси Это может быть реализовано во многих отношениях, но например:

  1. Сохраните локальную копию учетных данных почтового ящика и используйте их для аутентификации пользователей на локальном MDA, который мог по умолчанию поставить к папке "Local" для каждой учетной записи пользователя
  2. Используйте courier-authlib/authpipe или Гибель для передачи тех учетных данных к удаленному MDA одновременно, включая остальную часть папок
  3. Настройте задание крона для повторения передающих новых сообщений в папке "Local" к удаленному MTA, когда сервис SMTP закончится

... Или реализуйте внутренний DNS и:

  • Измените предпочтения MX на домене компании, направляя все обоим MTAs (технически потребовал бы двух внутренних MTAs),

или

  • Просто используйте другое (даже фальшивка) доменное имя для внутриофисных электронных писем и реализуйте его как систему обработки отказа

3
04.04.2015, 09:09
2 ответа

Параметр смещение для mount не передается напрямую для монтирования, а в losetup , который устанавливает петлевое устройство, которое относится к смещенному местоположению нижележащего блочного устройства. Затем Mount выполняет свои операции на этом устройстве цикла, а не на самом необработанном блочном устройстве.

Вы также можете использовать losetup , чтобы заставить resize2fs воспроизводить такие файловые системы:

# losetup --offset=<offset> --find --show /dev/<device>
/dev/loop0
# resize2fs /dev/loop0 <newsize>
# losetup --detach /dev/loop0

(Пример может быть неполным с помощью операций resize2fs)

losetup ищет первое устройство свободного цикла (в этом примере / dev / loop0) как - find был передан. - показать вывод этого устройства петли в STDOUT.

3
27.01.2020, 21:19

Прежде чем я расширил файловую систему ext4 из свободного пространства в начале блочного устройства, я выполнил поиск, чтобы увидеть, как это делают другие, и похоже, что ваш вопрос был самым близким соответствием, которое я смог найти. Но предоставленный ответ - это не совсем то, что вы просили или мне было нужно. Поскольку мне только что удалось успешно изменить размер / рост диска с начала, я решил поделиться своими мыслями.

Краткое описание процедуры: 1.) Файловая система, которая будет увеличиваться / расширяться: файловая система ext4 на разделе, начинающемся в секторе 1026048 и заканчивающемся в конце блочного устройства ( / dev / sdb в моем случае) 2.) Чтобы выделить неиспользуемые секторы в начале блочного устройства для этой файловой системы, мне пришлось переместить данные с помощью dd в начало мой будущий / новый раздел 3.) Удалить старый раздел и воссоздать его с новым начальным сектором 4.) resize2fs для расширения до размера нового раздела

Используемые команды и подробные сведения о методе:

Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

(Информация, приведенная выше, раскрыта с помощью fdisk -l /dev/sdb.)

Calculate dd искать и пропускать смещения и bs (в нашем случае bs соответствует размеру сектора):

# dd seek=2048 skip=1026048 if=/dev/sdb bs=512 of=/dev/sdb

Итак, мы хотим переместить наши данные из сектора 1026048 и далее, чтобы начать с сектора 2048, где будет начинаться наш новый раздел. Мы не должны ничего потерять, поскольку чем больше мы читаем со входа, тем дальше мы получаем, поэтому к тому времени, когда мы начнем перезапись с выходом (он в конечном итоге достигнет сектора 1026048), мы скопировали бы то, что было на входе. начало устройства и двигаться дальше.

Затем используйте fdisk , чтобы удалить старый раздел и воссоздать его, чтобы начать с сектора 2048.

Как только это будет сделано, вы можете запустить:

# partprobe /dev/sdb or
# blockdev --rereadpt /dev/sdb
# resize2fs /dev/sdb<num>

для расширения файловой системы.

Пожалуйста, всегда делайте резервные копии ваших данных перед выполнением подобных низкоуровневых процедур. Сбой на некоторых этапах, сбой системы или сбой питания приведут к потере данных. Это пример, описывающий один раздел на блочном устройстве. Ваши настройки могут отличаться, поэтому не используйте их как есть. Изучите и поймите, как это работает, затем протестируйте, и, если вы получите ожидаемые результаты, используйте свои живые данные на свой страх и риск!

Надеюсь, что это поможет и другим. Мы приветствуем обратную связь и то, что можно улучшить / сделать более подробным.

Спасибо!

1
27.01.2020, 21:19

Теги

Похожие вопросы