Проблемы расширения и переноса сервера

С поддержкой разнообразных аппаратных средств и доказанным быстродействием и надежностью, Linux постепенно начинает применяться на все более мощной аппаратуре. Это может включать переход к SMP (Symmetric Multi Processing) конфигурации для больших возмоностей обработки процессов, RAID level от 0 до 5 (программная или аппаратная поддержка) и т.п.

Если возможностей аппаратуры уже не хватает, нужен апгрейд. Здесь есть два варианта: нарастить мощность имеющегося сервера, или перенести все на новый. Этот раздел концентрируется на второй ситуации, когда Вы будете переносить свои сервисы со старого сервера на новый.

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

  • Подготовьте новый сервер как нужно; установите и сконфигурируйте Linux так, чтобы новые аппаратные устройства работали, запустите все необходимые возможности ядра и демоны. Подробности см. в главе 4 и разделе Построение специального ядра главы 10.

  • Установите нужные сервисы (например, Apache web-сервер, Samba или Netatalk file & print сервисы) и погоняйте сервер с тестовыми данными несколько дней, дабы убедиться, что все работает. Подробности в разделах: Файловый сервис и печать через Samba главы 7 и Файловый сервис и печать через Netatalk главы 7 . Не забудьте гарантировать, чтобы любые изменения или скрипты в каталоге ``/etc/'' включая все в ``/etc/rc.d/'' также были выполнены на новом сервере как требуется. Особенно важно, чтобы Вы не забыли внести данные о пользователях в файлы ``/etc/passwd'', ``/etc/group'' и, если используется затенение паролей, в `` /etc/shadow''!

  • Остановите сервисы на старом сервере, чтобы ваши файловые системы имели минимальное количество модификации файлов. Очевидно, Вы не хотите, чтобы юзвери меняли данные на старом сервере, в то время как Вы переносите данные на новый! Как root Вы можете остановить большинство сервисов следующей командой:

    
    killall httpd atalkd smbd nmbd squid sendmail ftpd
    

    Данная команда завершит web-сервер, file & print сервисы, e-mail сервер и сервис FTP. (У Вас может использоваться не совсем то, что я перечислил, так что проверьте список процессов и завершите все сервисы; см. раздел Управление процессами в главе 9.)

    Можно также поправить на старом сервере файл `` /etc/inetd.conf'' и закомментировать символом ``#'' все сервисы (такие как FTP, IMAP и POP3), которые меняют файловую систему. После чего от имени root введите:

    
    killall -HUP inetd
    

    Данная команда перезагрузит TCP-демон, и все закомментированные в файле ``/etc/inet.conf'' сервисы станут недоступны.

  • Теперь можно скопировать данные с одного сервера на другой. Переносить нужно данные из ``/home'', ``/var/spool'' и особых файловых систем, вроде `` /archive''. В примере ниже использована утилита ``tar'' для создания сжатой копии данных:

    cd /
    
    tar zcvpf /tmp/backup_data.tar.gz --exclude=var/spool/squid \
              home archive var/spool
    

    Данная команда зарезервирует файловые системы ``/archive'', ``/home'' и ``/var/spool'' (или подкаталоги, смотря как у Вас организована файловая система) в файл ``/tmp/backup_data.tar.gz'' в формате compressed tar. Удостоверьтесь, что Вы имеете достаточно места для записи копии или пишите ее в другое место!

    Tip

    Совет: Вы можете использовать утилиту ``du'' для оценки требуемого места. Например, чтобы узнать, сколько занимают каталоги ``/archive/'' и ``/home/'' введите:

    du -h -s /archive /home
    

    Помните, что данная команда выводит реальный размер данных, но если использована опция ``z'' команды tar (как выше) для сжатия файла образа, Ваши потребности будут куда меньше. Рассматривайте вывод команды ``du'' как худший случай требований к месту (несжимаемые данные, бывает такое).

  • Теперь можно восстановить данные из tar-файла на новом сервере. Вы можете восстанавливать их непосредственно по NFS (см. раздел Сервисы Network File System (NFS) главы 7 на предмет настройки NFS) или просто передайте архив по FTP и распакуйте его на месте (замечание переводчика: сначала автор отключил сервис FTP, а теперь предлагает использовать его для передачи файлов...). В следующем примере восстанавливаются файлы, запакованные выше:

    cd /
    tar zxvpf /tmp/backup_data.tar.gz
    
  • Если все нормально, поменяйте IP-адреса на новом и старом сервере.

  • Наконец перезапустите сервер для отлова неожиданных ошибок. Подробности в разделе Выключение и перезапуск системы главы 6 .