W poprzednim wpisie pisałem o planowanej migracji na Oracle Cloud. Jak widać blog stoi już w nowej lokalizacji, więc operacja jest zakończona i mogę napisać kilka słów z perspektywy.
Migracja
Poszło niemal bezproblemowo. Backup w zasadzie zadziałał. Był problem z detalami typu lista zainstalowanych pakietów i crony. W sumie nieistotne i/lub poprawione. Xpil opisał swoją migrację VPSa i po tej lekturze miałem silne postanowienie zamknięcia wszystkiego w kontenerach LXC. To nieco wydłużyło proces migracji i dodało trochę zadań. Co prawda nadal nie jest to taka separacja jak w dockerach czyli per usługa, ale mariadb + nginx + całe WWW w osobnym VPSie też jest OK.
Konieczne było lekkie przemeblowanie. Musiałem rozdzielić skrypty cron do właściwych kontenerów. Okazało się też, że wynik działania jednego kontenera (Planeta Joggera) musi trafić nie do hypervisora, tylko do innego kontenera, a ten nie ma dostępu. Skrypt w cronie na hypervisorze załatwił sprawę.
Podobnie niezbyt elegancko rozwiązany jest backup bazy danych. Dump robię teraz w LXC, a następnie cały kontener jest backupowany. W ten sposób zawartość bazy jest zdublowana. Mam pomysł jak to rozwiązać, nie wiem, czy potrzebuję. Tyle o samej migracji, a efekty i hosting?
Efekty
Przede wszystkim jest szybciej, przynajmniej wg GTmetrix. Niestety nie zrobiłem testu tuż przed migracją i od razu po niej. Mam tylko ten link z twardymi danymi, ale w międzyczasie się poprawiło, więc polegam głównie na pamięci. Ale tak dobrze to nigdy nie było:
Hosting
Pewnie w sporej części to kwestia przejścia z jednego VPSa na dwa, w dodatku z widocznymi dwoma rdzeniami w systemie. W Arubacloud było:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU E5-2650L v4 @ 1.70GHz
stepping : 1
microcode : 0xb000038
cpu MHz : 1699.999
cache size : 35840 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm 3dnowprefetch pti arat
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3399.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
Teraz jest (pojedynczy rdzeń):
processor : 1
vendor_id : AuthenticAMD
cpu family : 23
model : 1
model name : AMD EPYC 7551 32-Core Processor
stepping : 2
microcode : 0x1000065
cpu MHz : 1996.249
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr virt_ssbd arat npt nrip_save arch_capabilities
bugs : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass
bogomips : 3992.49
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
Blog zawsze dominował, jeśli chodzi o obciążenie, ale teraz ma całe zasoby dla siebie. Z drugiej strony bieżący VPS ma sporo wolniejszy dysk (3000 IOPS, 24 MB/s). Można tym jakoś sterować, ale zakładałem na domyślnych wartościach. No i nie widzę potrzeby zmiany.
Wady
Żeby nie było, że wszystko jest fajnie – port 25 TCP w Oracle Cloud jest zablokowany na twardo, w obie strony. Czyli ani maila nie przyjmę, ani nie wyślę. Znalazłem, że trzeba pisać do supportu o odblokowanie. Napisałem i zobaczymy. O ile do monitoringu poczta nie jest mi potrzebna, bo powiadomienia mogę wysyłać Telegramem, to przy blogu jest to jakby kluczowe. Potwierdzanie subskrybcji komentarzy itp. Z drugiej strony widzę, że nie było to jakoś mocno wykorzystywane… Zobaczę co odpowiedzą i wtedy pomyślę, co dalej.
Ogólnie sporo rzeczy w Oracle Cloud jest załatwianych przez support. Ustawienie PTR – support (działa!). Inny obraz dysku dla arm64 – support (tak powiedzieli na czacie, odpuściłem).
UPDATE: Port 25 nie został odblokowany, bo free tier. Nie jest to duży problem – wystarczy skonfigurować SMTP relay u któregoś z dostawców.
A propos backupu to ja póki co korzystam z Vaultpress (od Automattic) – nie jest super tanio, €43 rocznie, ale z drugiej strony to niewiele więcej niż duża kawa w Starbucks raz na miesiąc, czyli jednak taniocha biorąc pod uwagę, że mam święty spokój w ramach awarii. No i przechowują dzienne backupy bez limitów tj. od początku świata, czyli z nieskończoną retencją, co przy 5GB danych (tyle mam mniej więcej w /var/www/xpil.eu/) daje prawie 2 terabajty rocznie (i co rok ciut więcej).
Ale pomyślałem sobie, że skoro mam taką możliwość, może dałoby się ten koszt jakoś przyciąć. Zrobiłem sobie więc prościutki skrypt w bashu, który robi kopię bazy i plików, i ściąga je na lokalnego NAS-a (po rsync, żeby było szybciej), a NAS już automagicznie synchronizuje to z Dropboxem, który z kolei trzyma wersje wszystkich plików za ostatnie 6 miesięcy. Czyli jest lepiej bo za darmo (w sensie, w ramach subskrypcji Dropbox, którą i tak opłacam), ale zamiast pełnej historii mogę się cofnąć w czasie „tylko” o 6 miesięcy, co mi jednak w zupełności wystarcza.
Jedyny kłopot jest taki, że jeszcze tego backupu nie przetestowałem, bo jestem leniwy, a jak wiadomo nieprzetestowany backup to jakby go w ogóle nie było…
Backup to temat rzeka. Zamiast skryptu polecam zainteresować się gotowymi rozwiązaniami. Są takie, które potrafią robić i przyrostowe, i szyfrowane (jednocześnie). Z drugiej strony takie rozwiązania to dodatkowa warstwa komplikacji, więc prościej może być właśnie skryptem – co kto lubi.
Ale nawet przy skrypcie warto sobie odpowiedzieć na pytanie: czy naprawdę potrzebujesz codziennego backupu? Ja doszedłem do wniosku, że backup bloga raz na miesiąc wystarczy. W razie draki stracę góra kilka wpisów i komentarzy do nich. I też pewnie nie, bo najświeższe i wpisy, i komentarze mam w czytniku RSS, więc do odzyskania ręcznie.
Poza tym, są fajne strategie backupów długoterminowych minimalizujące rozmiar, oparte o zmienny interwał. Typu: trzymasz 7 ostatnich backupów dziennych, 4 tygodniowe, 12 miesięcznych. Łącznie masz góra 23 sztuki, a pokryty cały rok. Przy czym też raczej nie potrzebujesz w przypadku bloga wracać do jakichś staroci. No chyba, że szablon itp.
Możesz sprawdzić czemu mój RSS dostaje u ciebie timeouty?
rss.mystop.it
Chętnie, ale potrzebuję IP z którego przychodzi od mnie ruch. Może być mail, patrz dział kontakt. Trzymasz to za Cloudflare, więc na podstawie domeny widzę IP ich frontu jedynie.
Zgaduję, że w grę wejdzie jakaś blokada typu stopforumspam. W logach widzę kilka instancji FreshRSS, które się z powodzeniem łączą.
Alternatywnie możesz zobaczyć czy działa Ci
http://feeds.feedburner.com/PomiedzyBitami
Nie jest to coś, na czego działanie zwracam szczególną uwagę, ale jak parę lat temu skonfigurowałem, to jest i działa. Usuwać nie zamierzam.