Dzięki za uznanie - to nie wielkość, tylko upór.
Postawiłem sobie za cel postawienie alternatywy dla serwera dla small buisness server z serwerem plików, kontrolerem domeny, MSSQL serwerem, serwerem VPN i serwerem backupu/synchronizacji stacji roboczych (SyncThing). udało mi się te wszystkie komponenty postawić w kontenerach. A wszystko za free, na mocnej maszynie.
Czyli z funkcjami które oferują NASy +MSSQL server i wszystko to na systemie plików pozwalającym na migawki i replikację pomiędzy dwoma hostami (ZFS)
Co do LxC vs VM - oczywiście, że bezpieczniej stawiać na produkcji MSSQL server w VM ze względu na:
-snapshoty.( Pod Proxmox możesz dla VM robić snapshoty (qm snapshot --vmstate=1) wraz z zawartościa RAM, co zwiększa znacząco szanse na to, że bazy po przywróceniu VM ze snapshota będą koherentne (bo zrzucone wraz z buforami z RAM).
-buforowanie zapisu/odczytu do systemu plików. Dla MSSQL lepiej jest ustawiać to na Write through (odczyt cache, zapis nie), w kontenerze tego nie zrobisz tak wprost
-Migrację w locie i replikację pomiędzy hostami - kontener musisz zatrzymać, a VM nie.
-Lepszą izolację pomiędzy gościem i gospodarzem.
Co do wydajności zapisów to nie znam tego porównania.
Na co trzeba uważać ?
Otóż MSSQL for linux jest wypatroszony z service providers. Moment kiedy będziesz chciał z baz eksportować dane, lub do baz importować coś z exel, lub access może zaoowocować błędem:
"Cannot create an instance of OLE DB provider "MSDASC" for linked server "(null)"
Nie udało mi się np. w Płatniku zarchiwizować danych płatnika do bazy archiwalnej lub zewnętrznej stojącej na MSSQL Linux, co pokazuje tylko że niektóre funkcje w aplikacjach mogą nie zadziałać, co może zdyskwalifikować całe przedsięwzięcie.
kompletną instrukcję mogę podesłać.
Dzięki lurk, jesteś Wielki! Dla takich postów ludzie wchodzą na fora a nie dla porad w stylu "Znajdź sobie dobrego specjalistę". Sam mam podobną konfigurację (Ubuntu w kontenerach na Proxmox), tylko nie używałem samby (ze względów bezpieczeństwa, wydaje mi się, że bez niej będzie bezpieczniej) i problemy są z tego powodu są trzy: że archiwizacja z poziomu InsERTa nie działa, ale mi to nie przeszkadza, bo archiwizuję z poziomu MS SQL skryptami a jak wydaję bazę byłym klientom, to ją wcześniej przerzucam na serwer na Windzie, gdzie i tak muszę zmienić hasło szefa przed wydaniem oraz chcę, by wydane archiwa miały windziane ścieżki do plików bazy, chcę, jak były klient nie umie tego podpiąć, by nie tłumaczył tego bazą z Linuksa itp. Reszta rzeczy (Biuro GT, aktualizacja itp. działają), tylko na serwerze linuksowym w temp zostają śmieci (których przy Sambie by nie było), które usuwam skryptem. Trzeci problem to linuksowe ścieżki z "/" co MS SQL nie przeszkadza, InsERTowi prawie też nie (działa na nich, ale nie zrobi kopii czy nie przywróci z niej podmiotu. Edycja ścieżek plików baz na Linuksie na windziane rozwiązuje problem, bo jak wspominałem ms sql łyka każde (nawet "/\"(!) a InsERT wtedy nie ma problemu).
Mam pytanie: spotkałem się w Internecie z opinią, że VM zamiast kontenera na Proxmox ma lepszą wydajność I/O, bo podobno VM mają lepiej tam zrobioną optymalizację współbieżnych operacji I/O niż kontenery - masz jakieś zdanie na ten temat? Bo mam tam oczywiście też inne kontenery niż z bazami InsERTa.