www.lissyara.su -> статті -> FreeBSD -> налаштування -> i386 => amd64
Дистанційна міграція з i386 на amd64
Автор: serge .
& nbsp Для написання цієї замітки використовувалося безліч різного матеріалу, знайденого в глобальній мережі Internet. Вказати конкретно, що і звідки брав не представляеться можливим, так як іноді це була просто наводка в потрібному напрямку. Так що авторам, які помітили будь-які збіги зі своїми роботами, прохання написати і я додам вас до списку джерел інформації. Окреме спасибі товаришу lissyara, який півночі консультував мене по ходу міграції.
& Nbsp Все почалося з того, що сервер переїхав з dedicated (орендованого) на colocation (розміщений). На Дедик стояла дешева "залізяка" на базі одноядерного Intel Pentium IV з 1Гб оперативної пам'яті, а під colocation був куплений чотирьохядерний AMD Phenom з 4 Гб оперативної пам'яті. Відповідно хотілося отримати всі принади 64-бітного процесора AMD. Завдання ускладнювалося тим, що сервер був перенесений за допомогою стандартних утиліт dump / restore і був повністю налаштований. Варіант з установкою нової ОС FreeBSD amd64 з подальшою установкою і налаштуванням всього програмного забезпечення не вражав, так як мороки там було багато, та й призабув я вже деякі важливі дрібниці. Тому було прийнято рішення мігрувати з-під діючої, робочої ОС.
& Nbsp У підсумку маємо: сервер з процесором amd64, двома жорсткими дисками, 4 Гб ОЗУ, встановленої ОС FreeBSD 6.3-stable i386 без SMP і PAE. На виході потрібно отримати ОС FreeBSD 6.3-stable amd64 з SMP.
& Nbsp Приступимо.
& Nbsp ОС встановлена на першому жорсткому диску hdd (ім'я диска ad4), другий жорсткий диск (ad5) соответствено залишився незадіяним (планувався під gmirror). Ось на нього (ad5) і будемо ставити нову ОС. Через sysinstall створюємо розділи і монтуємо їх в / mnt.
& Nbsp У результаті повинно вийти приблизно наступне:
& Nbsp Збирати ядро будемо відразу з необхідними нам опціями, тому створюємо файл конфігурації. У нього вписуємо тільки ті директиви, які нам потрібні і не присутні в конфігурації за замовчуванням. Все інше підключаємо з SMP (в свою чергу SMP підключає директиви з GENERIC).
& Nbsp При складанні ядра (kernel) і світу (world) вказуємо, що нам потрібна архітектура amd64, ну і, звичайно ж, файл конфігурації ядра. Місцем для установки є каталог / mnt, в якому змонтований другий hdd.
& Nbsp При наповненні каталогу / etc дистрибутивів у мене вилізла несподівана дрібна проблема - для sendmail'а не вистачило файлів конфігурації. Розбиратися, чому і через що так вийшло, часу не було, тому я їх просто скопіював зі старою ОС. Після цього make distribution відпрацював без помилок.
& Nbsp Якщо все пройшло успішно, на другому hdd ви повинні отримати встановлену ОС FreeBSD 6.3 adm64. Тепер необхідно все підготувати для її завантаження. Для цього копіюємо нове ядро в каталог / boot першого hdd і перейменовуємо в kernel64. Для разового завантаження FreeBSD в іншу конфігурацію будемо використовувати утиліту nextboot. Її можна просто викликати з необхідними параметрами, а можна вручну створити для неї файл конфігурації nextboot.conf в каталозі / boot. Другий варіант мені сподобався більше. У цьому файлі вказуємо, яке ядро завантажувати і який розділ вважати кореневих.
& Nbsp Для того, щоб можна було підключитися до нової ОС віддалено (і не тільки), копіюємо файли для користувача учеток і інші настройки зі старої ОС:
& Nbsp Створюємо в новій ОС файл fstab відповідно до наявних розділами:
& Nbsp Створюємо файл конфігурації ОС rc.conf. У нього записуємо тільки найнеобхідніше: настройки мережі, запуск демона sshd і перевірку файлової системи. Все інше відключаємо.
& Nbsp На цьому підготовка нової ОС закінчена. Тепер, схрестивши пальці, перезавантажується.
& Nbsp Якщо все було зроблено правильно, то перед вами постане FreeBSD amd64. Якщо десь помилилися, то доведеться дзвонити / писати в службу підтримки вашого дата-центру і замовляти kvm. Ось тут-то і виявляється перевага утиліти nextboot. Вона намагається запустити ОС в новій конфігурації тільки один раз. Якщо ОС була перезавантажена, то ви повернетеся до старого ядра.
& Nbsp Але, тим не менше, навіть якщо все було зроблено правильно, є можливість не побачити свій сервер в мережі. У мене, наприклад, нове ядро перепризначити нумерацію другого hdd (було ad5, стало ad8) і, відповідно, в автоматичному режимі ядро не завантажили. Довелося замовляти kvm і запускати ядро вручну.
& Nbsp Після цього все піднялося нормально і я зміг підключитися до сервера по ssh.
& Nbsp Перевіряємо:
& Nbsp Трохи поясню, що у нас вийшло. Ми завантажилися з нового ядра і з новим світом з другого hdd. Стару ОС (перший hdd) ми змонтували в каталог / mnt.
& Nbsp Тепер нам необхідно зібрати і встановити мир і ядро в стару ОС. Дії аналогічні тим, що були раніше, тільки відрізняється кількістю потоків (опція -j8), так як нове ядро підтримує SMP (симетричну многопроцессорность). Взагалі збірка в кілька потоків має сумнівну вигоду, так як є ризик появи помилок збірки. Але я ще не разу не загрібає таких проблем, тому продовжую використовувати цю опцію на свій страх і ризик.
& Nbsp Коментуємо все зайве в rc.conf, залишивши лише найпотрібніше: настройки мережі, запуск демона sshd, перевірку файлової системи. Видаляємо конфігураційний файл nextboot і перезавантажуємося:
& Nbsp Таким чином ми отримали ОС, успішно мігрувала з архітектури i386 на amd64. Але для повного щастя ще необхідно пересобрать все раніше встановлене програмне забезпечення і видалити старі бібліотеки. Щиро вам бажаю, щоб ваше програмне забезпечення було встановлено з портів.
& Nbsp Хотілося б зауважити, що Перезбірка портів зайняла повний робочий день, тоді як сама міграція близько 3-4 годин. Все через те, що при складанні якого-небудь порту випадали помилка, яку доводилося виправляти вручну, найчастіше шляхом індивідуальної пересборки потрібного порту. Тому повну перезбирання портів доводилося запускати більше 5 раз. Можливо, я тут щось робив не оптимально, але в підсумку все встало на свої місця.
& Nbsp Коли закінчили з портами, прибираємо коментарі в rc.conf і робимо контрольну перезавантаження:
Посилання на обговорення: php?f=14&t=8352> http://forum.lissyara.su/viewtopic.php?f=14&t=8352 .
розміщено: 2008-04-28,
останнє оновлення: 2008-05-03,
автор: serge
Php?