The Diary
Дневникът на Георги
<- Понеделник, 21 Март 2005 | Начална страница | Сряда, 23 Март 2005 ->
Вторник, 22 Март 2005
18:00Колкото пъти да казвам че Юникса е благина, все няма да е достатъчно. Задачка-закачка, имате нова машина и искате да прехвърлите от вече работеща в новата всичките функционалности на работещата. Тоест искате, новата да стане 1:1, като старата след което да ги смените и да ползвате новата. Целта е това да стане с минимален downtime при превключването и никакво бъзикане (малка скобка това дето го показвам по-долу под уиндолс е НЕВЪЗМОЖНО, защото не може да подменяте библиотеки и работещи програми on-the-fly).
И така, стъпките са следните:
1. Инсталирате на новата машина съвсем основна дистрибуция, без значение
каква, само трябва да може да вдигне мрежовият интерфейс и да има ssh
и
rsync
.
2. Боотвате новата машина и се логвате в старата на която избивате всички
услуги без ssh
.
3. Изпълнявате следната команда (OLD е името на старата машина):
rsync -e ssh -av --delete --exclude proc --exclude sys OLD:/ /
5. Ако дисковете или партишъните са различни ще се наложи да пипнете в /etc/fstab и /etc/lilo.conf
4. На старата машина променяте при стартиране да ползва не нейният IP адрес.
6. На новата стартирате lilo
за да оправи boot loader-а.
7. Рестартирате двете машини (първо старата, малко след нея и новата).
Voila. Ако всичко е наред, новата машина е 100% копие на старата и след рестартирането изпълнява нейната дейност, а старата си стои на друг IP адрес.
[ Коментари: 15 ]Коментари
Естествено че трябва да се съобразиш с разликите в хардуера и дали ти трябва ново ядро, но това е никакъв проблем ако позлваш да речем стандартно ядро със всичко на модули и поддръжка на scsi и ide едновременно.
за кернела е така, затова --exclude boot )))
едно е да прекомпилираш само кернел друго е сички услуги да оправяш, еле и ако си ги customize нал малко......
така че *niz rulz foreva kopele ::)))
foo> ssh -R 3200:localhost:22 xxx.xxx.xxx.xxx -l user
...
xxx.xxx.xxx.xxx> ssh localhost -p 3200
...
красота.
Мда Remote port forward :) още по темата: http://georgi.unixsol.org/texts/presentations/ssh.pdf
хех, всичко има някъде, само човек да може да го намери...
bTW сега съм на тема:
ssh -o ProxyCommand='/root/bin/proxytunnel -g xxx.xxx.xxx.xxx -G 80 -u user -s pass -d yyy.yyy.yyy.yyy -D 443' gate
ама нещо с keepalive не мога да го докарам... :)
Пускай "top", когато не работиш на конзолата, или виж ProxyKeepAlive. Тия неща си ги пише на сайта. :-)
I would better do:
boot from knoppix (you really don't need /proc & /sysfs if any ...) on both machines. Start sshd and:
cd /
tar -cvjfp - * | scp root@new_machine:/tmp/backup.tar.bz
...
tar -xvjf backup.tar.bz
chroot . and so on...
-or-
tar cfp - * | ssh root@new_machine cat/>bachup.tar
damn :
scp -a * root@new_machine:/ (?) gota try it :)
Целта беше минимален downtime и на двете машини. Май забравих да спомена и че и до двете нямам физически достъп, така че boot-ване от knoppix и игри с tar са невъзможни.
yep, that changes a lot of things but you I think you can still use scp.
Out of toppic:
Look what I found: linas.org - just for *smart* bulgarians (humans?) sorry only in English ...
Пича Linas е много светнат. Едно време работех във фирма, която доразвиваше кода на система за резервации която основно той беше писал. Много чист, свестен и разбираем C++. В момента бачка за IBM и се занимава с Linux ядрото за PPC64, следя го в lkml :)
Иначе английският го чета и пиша и говоря ама ме мързи.
кефя се когато си реша някой проблем нещо като оргазъм е... :)
та се оказа че трябва да добавя в ssh сървър конфигурацията :
ClientAliveInterval 100
така сървъра да изпраща keep alive към клиента, щото явно firewall-a блокира клиентските....
Много благи неща сте изписали.
Аз мога да добавя едно друго мое любимо, а именно.
cat /dev/hda1 >> /dev/hdb1
Примерно или нещо от сорта
където hda1 e starata a hdb1 новата машина.
Разбирасе няма как да няма downtime но става по бързо особенно с бързи дискове.
На тва му викам exact mirror поради простата причина че копира даже размера на партишъна едно кум едно на новия диск.
Е, това да - макар че сигурно имаш предвид '>', а не '>>' :) Другото силно би ме изненадало - да успееш да добавиш съдържанието на един диск към друг :)
А и все пак това ще стане само ако наистина двата дяла са с един и същи размер, което не винаги може да се получи, ако самите физически дискове са различни...
prepare the client to accept the image and write it directly to the disk:
netcat-v -w 120 -p PORT -l < /dev/null | gzip -dc | dd of=/dev/hda bs=512
Send the image from the master:
dd if=/dev/hda bs=512 | gzip -c | netcat-v -w 60 SERVERIP PORT
after that just reboot,easy and simple.!
Disclaimer: Except where otherwise noted all opinions expressed here are personal
opinions of the author and do not reflect official opinions of my employer or
any other person, company or organization associated with the author.
Copyright: Except where otherwise noted the content of this site is licensed under a
Creative Commons Attribution License. Текстът на договора за ползване на български
Copyright (cc) 2003-2011 Georgi Chorbadzhiyski. Some rights reserved.
Comments, texts and pictures not signed by me are property of their respective owners.
Страницата е генерирана от Glog v3.99-test
Много удобно, наистина. Но няма ли да има малко проблеми ако ядрото на ОЛД не потдържа хардуера на новата машина? И няма ли да е проблем ако има някакви работещи услуги на новата машина докато се копира информация от старата?
Жоро, направо ти се възхищавам как хвалиш Юникс. Само ме е яд, че ти знам блог-а от скоро. Сигурно щях да знам много повече трикове за Юникс, отколкото знам сега.
Поздрави
Написа Георги (www) на 22-Mar-2005 17:04