Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section


Column
width70%

Wymagania sprzętowe dotyczące serwera

Na wybór odpowiedniej konfiguracji sprzętowej serwera wpływ mają przede wszystkim: liczba użytkowników (w tym czytelników), liczby baz danych oraz zainstalowanych modułów systemu bibliotecznego. Stąd dla każdej instalacji niezbędne jest indywidualne oszacowanie potrzeb. Na podstawie naszych doświadczeń jesteśmy jednak w stanie wskazać podstawowe parametry, jakie powinien spełnić serwer (lub maszyna wirtualna) przeznaczona pod system biblioteczny SowaSQL Premium.

RAM - ilość pamięci operacyjnej

CPU - liczba wątków procesora

HDD, SSD - dysk przeznaczony na bazy danych

RAID - kontroler dysków / macierzy


MinimalneKomfortoweOptymalne
RAMCPUHDDRAIDRAMCPUSSDRAIDRAMCPUSSDRAID
SowaSQL Premium12GB4500GBsoftware16GB81TB SATAkontroler sprzętowy32GB161TB SAS nVMEkontroler sprzętowy


Warning

Do podanej wielkości pamięci należy dodać po 1 GB na każdych 10 licencjonowanych użytkowników.

Oznacza to iż jeśli posiadacie Państwo licencję na 30 użytkowników wartości te będą następujące:

Minimalne: 12 + 3 = 15 GB

Komfortowe: 16 + 3 = 19 GB

Optymalne: 32 + 3 = 35 GB


Oczywiście są to pewne ramowe wartości, niemniej współczesne maszyny serwerowe bez problemu spełniają nawet zaproponowane tutaj optymalne warunki sprzętowe. W przypadku maszyn wirtualnych, których zasoby można dynamicznie przydzielać, najlepiej rozpocząć pracę z lekkim zapasem mocy i po miesiącu pracy można dopasować zasoby do realnych potrzeb danej instalacji.

Niezależnie od wybranej konfiguracji serwera, zwracamy uwagę na następujące, istotne aspekty:

  • Zastosowane komponenty powinny być przeznaczone do pracy w serwerach, w trybie pracy ciągłej 24/7
  • Zabezpieczeniem inwestycji jest odpowiednia gwarancja dostawcy i producenta na eksploatowany sprzęt, zapewniająca szybki czas reakcji na miejscu w bibliotece oraz usługi dodatkowe jak np. możliwość zachowania uszkodzonego dysku po ewentualnej wymianie, szczególnie istotną w kontekście przetwarzania danych osobowych.
  • Serwer powinien być umieszczony w certyfikowanej serwerowni, zapewniającej m.in. ochronę przeciwpożarową, system alarmowy, zasilanie awaryjne oraz odpowiednio rejestrowany dostęp dla osób fizycznych.


Column
width30%

Table of Contents


...

System biblioteczny SowaSQL Premium, a dokładniej jego część serwerowa, zwana serwerem aplikacji, działa wyłącznie na systemie operacyjnym Linux, przy czym preferowaną przez nas dystrybucją jest aktualnie Ubuntu Server 2022.04 LTS w architekturze 64-bitowej.

...

Jeśli serwer będzie wyposażony w nagrywarkę DVD i ma automatycznie nagrywać kopie zapasowe, wówczas należy zainstalować także:

  • growisofs

Należy jednak zaznaczyć, że pojemność płyt DVD jest obecnie niewystarczająca do przechowania pełnego archiwum systemu SowaSQL Premium w większych bibliotekach. Dlatego zalecamy zakup zewnętrznego, sieciowego dysku do synchronizacji archiwum baz danych i danych multimedialnych.

Serwer bazy danych

Note
titleWażna informacja

Koniecznie przed przystąpieniem do instalacji serwera baz danych należy upewnić się, że serwer działa z polskimi locale (komenda locale) - powinny być pl_PL.UTF-8

No Format
root@sowa:~# locale
LANG=pl_PL.UTF-8
LANGUAGE=
(...)

Jeśli zamiast tego pojawia się np. "en_US" lub inne wartości, trzeba ustawić serwer na polskie locale. Na Ubuntu robi się to tak:

Code Block
locale-gen "pl_PL.UTF-8"
update-locale LANG=pl_PL.UTF-8
dpkg-reconfigure locales 
localectl set-locale LANG=pl_PL.UTF-8

To trzecie polecenie zapyta o domyślne locale dla systemu - należy wskazać pl_PL.UTF-8 - po wszystkim warto się ponownie zalogować do systemu i jeszcze raz sprawdzić, czy na pewno są poprawne locale

Należy także ustawić właściwą strefę czasową poleceniem:

Code Block
timedatectl set-timezone Europe/Warsaw


Serwer aplikacji SowaSQL wykorzystuje serwer baz danych PostgreSQL. Wymagany aktualnie wersji 1214.x, która jest domyślnie dostępna w systemie Ubuntu 2022.04.


Warning

Proponujemy po zainstalowaniu PostgreSQL wykonać komendę

Code Block
apt-mark hold postgresql*

Spowoduje to zablokowanie automatycznych aktualizacji wszystkich modułów PostgreSQL. Taka aktualizacja w czasie pracy systemu Sowa może spowodować jego awarię. Zalecane jest zatem aktualizowanie PostgreSQL ręcznie, po zamknięciu Sowy.

...

Serwer API i aplikacja webowa Sowy

...

Katalog on-line (SOWA OPAC)

  • apache
  • php >= 78.41, wraz z modułami (nie zawsze są w podstawowej instalacji PHP):
    • bcmath
    • curl
    • ctype
    • gd
    • hash
    • iconv
    • imagick
    • json
    • mbstring
    • openssl
    • session
    • sqlite3
    • xmlreader
    • xmlwriter
    • Klasa: Collator (PECL intl)

...

Wymagany jest interpreter języka Python w wersji min. 3.8 - w przypadku systemu Ubuntu 2022.04 jest on podstawowym składnikiem systemu w wersji 3.10.

Podczas instalacji środowiska wirtulanego wirtualnego Python i poszczególnych składowych modułów SOWA-NG, instalowane są także zależności (zewnętrzne moduły Pythona). Niektóre z nich wymagają kompilacji ze źródeł w trakcie instalacji, dlatego potrzebne będą następujące narzędzia:

  • make
  • g++
  • bison
  • pkg-config

Pełna instalacja dla Ubuntu

...

22.04 LTS 64-bit

Dla uproszczenia wszystkie w/w pakiety (wraz z serwerem PostgreSQL, którego instalacja opisana jest osobno wyżej) można zainstalować w następujący sposób (naturalnie z konta root).

...

Code Block
titleInstalacja pakietów w Ubuntu 2022.04
apt update
apt upgrade
apt install screen mc joe sqlite3 acpid growisofs wget strace openssh-server bash-completion htop
apt install postgresql-1214 libpq-dev
apt install nginx
nginx-extras
apt install apache2 apache2-utils
apt install python-is-python3 python3.810-dev python3.810-venv
apt install php php-cli php-gd php-imagick php-xml php-json php-bcmath php-sqlite3 php-mbstring php-curl php-intl libapache2-mod-php
apt install build-essential gawk gcc make libssl-dev libreadline-dev libsqlite3-dev zlib1g-dev libxslt1.1 libyaml-dev pkg-config 
apt install docker.io docker-compose
 
apt-mark hold postgresql*

systemctl disable --now apt-daily-upgrade.timer

...

Code Block
a2dissite 000-default
a2enmod rewrite
a2dismod status
systemctl restart apache2

Konfiguracja Nginx

Instrukcja pełnej konfiguracji usług w NGINX jest dostępna na następnej stronie.

Instalacja środowiska wirtualnego

...

Code Block
languagebash
wget http://download.sokrates.pl/sovvizor.py
python3 sovvizor.py

source ~/sowang3/bin/activate

pip install psycopg2 pillow

Instalacja 32-bitowej biblioteki libc-2.27

Część składników instalacji wymaga dostępu do 32-bitowej biblioteki standardowej, w wersji nie większej niż 2.27.

W przypadku Ubuntu 20.04 repozytoria zawierają zbyt wysoką wersję tej biblioteki (2.31). Jeśli została już zainstalowana architektura i386 i pakiety z repozytorium, należy je wcześniej usunąć.

Code Block
titleUsunięcie pakietów 32-bit
sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
apt-get purge `dpkg --get-selections | grep lib32 | awk '{print $1}'`
apt-get purge libc6-i386
sudo dpkg --remove-architecture i386

Poniższe polecenia pozwalają zainstalować lokalnie kopię biblioteki libc-2.27 pochodzącą z Ubuntu 18.04.

Code Block
languagebash
sowizor install server-sowasql-libc

sudo ln -s /home/sowa/sowa_sql/libc /lib/i386-linux-gnu
sudo ln -s i386-linux-gnu/ld-linux.so.2 /lib/ld-linux.so.2

...

Jeśli instalacji była aktualizowana z Ubuntu 16 lub Ubuntu 18, konieczne będzie dodatkowo utworzenie:

Code Block
sudo mkdir /usr/lib/i386-linux-gnu
sudo ln -s /home/sowa/sowa_sql/libc/gconv /usr/lib/i386-linux-gnu/gconv

Instalacja rozszerzenia PostgreSQL

Zalecane jest zainstalowanie dodatku do Postgresa, który przyspiesza działanie systemu Sowa. Polecenie trzeba wykonać z poziomu konta root.

Code Block
/home/sowa/sowang3/bin/loonicode-installer