Plus minus
Strona domowa Ireny i Zbigniewa Kuleszów
Serdecznie witamy na domowych, prywatnych serwerach
Dzisiaj jest: 2017-12-12  Aktualizacja strony dnia: 2016-10-09
Jezyki
Rocznica 15 lat pracy serwerów i strony zjk.pl :-)
UWAGA! Ten serwis, strona i podstrony mogą używać cookies i podobnych technologii (brak zmiany ustawienia przeglądarki oznacza zgodę na to)!
Powitanie Irena Zbigniew Elektronika Studenci Serwer Prawo_jazdy Kolejka Pobierz Linki Info O Tobie Mail
FreeBSD i mikroserwery - Rocznica 15 lat pracy serwerów i strony zjk.pl :-)
Info ogólne Kogo goœcimy? Usługi Technologie FreeBSD Oprogramowanie Sprzęt Aktualizacje Historia 32do64 Logi


Prywatne serwery: Zbigniew Kulesza - zjk.pl

Migracja z systemu 32 do 64 bitów


Dzisiaj jest: 2017-12-12   Aktualizacja dnia: 2017-10-18 17:55:21


Aktualizacja do nowej wersji - to operacja powszechnie stosowana. Ale przejście między wersją 32 i 64 jest rzadkością. Zwykle zaleca się ponowne instalowanie systemu, poprzedzone zachowaniem - później odtowrzeniem istotnych dla użytkownika plików i ustawień. Czy można to wykonać bez instalacji? Poniżej schemat migracji - w wersji oryginalnej i zmodyfikowanej, opracowanej i używanej przeze mnie (zastosowanej na wszystkich serwerach). Warto zauważyć, że część to skrypt, ale pozostałe operacje najpewniej też dałyby się zautomatyzować. Podsumowując - najwięcej zależy od pomysłowości i wiedzy o danym systemie operacyjnym, no i trochę pracy do tego.
Istnieje jeszcze druga wersja skryptu na podstawie pełnej kompilacji buildworld, buildkernel oraz installworld, installkernel (ja nie korzystałem z tej wersji) - dostępna dla chętnych po zgoszeniu mailem.


Schemat aktualizacji FreeBSD 32 do 64

zalecany: https://wiki.freebsd.org/amd64/i386Migration

wykorzystano zmodyfikowany:
http://ximalas.info/2015/01/17/migrating-freebsd-from-i386-to-amd64/

według skryptu (restart z pendrive z wgranym: FreeBSD-11.0-RELEASE-amd64-memstick.img) zmodyfikowanego ze względu na kilka punktów montowania. Dodatkowe założenie, że startujemy ze zaktualizowanego systemu oraz zaktualizowanych wszystkich portów, co potem upraszcza migrację (patrz 18-22.04.2107).

*****
#! /bin/sh
mkdir /mnt/var
mkdir /mnt/usr
mount /dev/ada0p2 /mnt   # nalezy wstawic wlasny schemat partycji i ich przyporzadkowania
mount /dev/ada0p4 /mnt/var
mount /dev/ada0p5 /mnt/usr
cd /mnt
echo "Chflags root"
chflags -R 0 *
echo ""
echo "Export bin lib libexec rescue sbin"
tar xvvf /usr/freebsd-dist/base.txz --exclude ./boot --exclude ./etc --exclude ./root --exclude ./var
echo ""
echo "Export boot"
tar xvvf /usr/freebsd-dist/kernel.txz
echo ""
echo "Export libexec"
tar xvvf /usr/freebsd-dist/lib32.txz
echo ""
echo "Koniec - tylko odmontuj umount /mnt/usr /mnt/var /mnt "
#reboot # into single user mode off the harddrive
*****

następnie:
zamiast pełnej kompilacji buildworld, buildkernel oraz installworld, installkernel (problem z kompilacją) - krok ten można pominąć, przejść do następnego
należy wykonać aktualizację pakietów (nie można używać pkg, jest jeszcze w wersji 32, powoduje niszczenie bazy pakietów local.sqlite), na wszelki wypadek podaję repozytorium FreeBSD, bo używam jeszcze własnego z Poudriere (niestety krosskompilacja pakietów lub systemu i386-amd64 nie jest wspierana - choć podobno możliwa):
pkg-static fetch -r FreeBSD -u
pkg-static upgrade -r FreeBSD -f
Potem tylko restart i ew. freebsd-update fetch install.

Zaobserwowane problemy po przejściu na 64-bit:
- bazy danych rrdtool ulegają uszkodzeniu, np. Monitorix, Ganglia, Symon, Vnstat (niestety trzeba skasować stare pliki .rrd) - błąd braku zgodności 32 i 64 (nie ma problemów z MySQL)
- inne drobne problemy, konieczność reinstalacji kilku blibliotek np. pdflib (czyli kłopoty nie większe niż podczas zwykłej aktualizacji wszystkich pakietów)
- jeśli komputer jest routerem i/lub serwerem dns, trzeba się przygotować, że podczas pierwszego restartu nie będzie działać unbound lub dnsmasq (czyli zawczasu zmienić w resolv wpis domyślnego nameservera, aby móc pobrać pakiety).

Zaobserwowane zmiany:
- zmiana w przydziałach pamięci (na podstawie top):
* serwery nie wykorzystujące pliku wymiany na 32, na 64 raportują po starcie 4 GB wolnej pamięci (z 8 GB)
* serwer www wykorzystujący kilkaset MB pliku wymiany na 32, na 64 raportuje po starcie 3 GB wolnej pamięci (z 8 GB)
* serwer dostępowy wykorzystujący 1,5 do 2,5 GB pliku wymiany na 32, na 64 raportuje po starcie 1 GB wolnej pamięci (z 8 GB)
* po dłuższej pracy serwerów na 64 wolna pamięć stopniowo się zmniejsza
- czy jest lub brak zmiany wydajności lub obciążenia serwerów?

Teoretycznie wpływu nie powinno być w ogóle (zmienia się tylko adresacja z 32 na 64, domyślny do obliczeń pozostaje rozmiar rejestru 32, choć dostępne są rejestry i obliczenia 64). Ale - podaję poniżej średnie 15 minutowe za jeden dzień przed i po migracji, dla najmniej i najbardziej obciążonego komputera:

komputer !! obciążenie rdzenia % przed ! po !!  obciążenie unix przed ! po
K1 !! 10,0% ! 10,5% !! 0,78 ! 0,83 !
K2 !! 3,7% ! 2,0% !! 0,39 ! 0,33 !

Oczywiście wynik wybiórczy (losowanie wyników przypadkowe) - jednak wskazuje, że sprawa niejednoznaczna :)

Wniosek ogólny: "tak jak byśmy dołożyli pamięci do kompa" (w tym wypadku: nie przez fizyczne dołożenie modułów, ale logiczne/programowe ich udostępnienie).





Powrót na stronę główną - Info o stronie, prawa autorskie, legalność itd. tutaj
Prywatne serwery Zbigniewa Kuleszy zjk.pl. Aktualny dostawca Internetu - Vectra.pl, Wszelkie prawa zastrzeżone. Zespół redakcyjny zjk.pl: zjk7@wp.pl
W sprawie treści i działania strony oraz w sprawie funkcjonowania i udostępniania treści na serwerach zjk.pl - kontakt z administratorem: webmaster@zjk.pl lub zjk7@wp.pl

Valid HTML 4.01 TransitionalValid XHTML 1.0 TransitionalPoprawny CSS!Poprawny CSS!

Copyright (c): Zbigniew Kulesza, Sieradz 2002-2017