VPS duomenų perkėlimas per išorinius ryšius

Trumpai apie VPS

Pradėsime nuo bendro aprašo, kas tai yra VPS (angl. Virtual Private Server). Virtuali privati tarnybinė stotis, veikianti kaip atskira fizininė tarnybinė stotis, bet iš tikrųjų yra sukurtas naudojant virtualizacijos technologiją. Dar kitaip mes visi įpratę visur matyti apibūdinimą šiem virtualiems resursams – debesijos kompiuterija (angl. Cloud Computing). Tačiau iš tikro mes perkame nutolusiame duomenų centre esančius kompiuterio resursus pagal verslo poreikį ir reikalavimus, o toliau iš jų susikuriame savo virtualią tarnybinę stotį.
Šiuo atveju, jei neturite savo ir nenorite kurti dedikuoto duomenų centro savo įmonės prieigose, toks pasirinkimas yra ypač tikslingas jūsų verslui. Jūs įsigyjate tik resursus, kuriuos naudosite savo poreikiams. O visa kita nereikės rūpintis, kaip pavyzdys infrastruktūra nutolusiame duomenų centre.

Kokiems tikslams kuriame ir naudojame

Pirkdami šiuos virtualius resursus, kitaip dar VPS, mes galime sukurti tinklo paslaugas ir servisus, individualizuotus sprendimus vienam verslo procesui. Taip pat sukuriant daugiau nei vieną VPS, galime juos apjungti ir sukurti jų grupes.

Pagrindiniai VPS naudojimo būdai:

  • Interneto svetainių individualizuotas talpinimas;
  • Programų ar paslaugų talpinimas pvz. CRM, ERP, apskaitos sistemos, el. pašto tinklo servisai, duomenų saugyklos;
  • Testavimo ir kūrimo aplinkos;

Kaip mes pasiekiame šiuos resursus

Kad pasiekti ir valdyti sukurtus resursus mums reikia prisijungimas prie VPS serverio. Populiariausi būdai, šiuo metu yra šie:

  • Tinklo prisijungimo protokolas SSH (angl. Secure Shell), dažniausiai kada naudojama Linux OS.
  • Grafinė sąsaja (anlg. GUI) per tinklo protokolus VNC arba RDP, jei tarnybinė stotis veikia su grafinėmis sąsajomis, dažniausiai Windows OS.

Duomenys ir virtualios duomenų laikmenos

VPS tarnybinė stotis yra mums išskirti resursai, kuriuos mes galime valdyti. Šiuo atveju plačiau aptarsime kaip valdysime savo sukuriamus duomenis VPS viduje. Kaip žinome tarnybinė stotis turės bent vieną virtualia duomenų talpyklą, t.y. vitualų duomenų diską. Jame pirminiame variante bus sudiegta pati operacinė sistema. Toliau į šį virtualų diską taip pat bus diegiamo kitos reikalingos programos, sukuriamos vartotojų aplinkos ir t.t. Šio vieno disko būtų kaip ir pakankamai, jei pačiame VPS serveryje nesaugotume jūsų sukuriamų failų, arba jie tiesiogiai būtų visada iškeliami.
Tačiau toks duomenų valdymas yra nerekomenduotinas. Laiku bėgant vienaip ar kitaip reikės didinti šio pirminio disko resursą, o jame esantys duomenis turės būti iškelti.

Šiek tie geresnis sprendimas duomenų organizavimo – įsigyti papildomus duomenų resursus ir juos prijungti kaip papildomą virtualų diską. Tokiu atveju failų sistema ir duomenys yra atskiruose virtualiuose diskuose. Jie vienas kito neįtakoja, esant resursų pakeitimo poreikiui.

Lanksčiausias sprendimas duomenų organizavimo, kurį leidžia virtualizacija – įsigyti tuos pačius duomenų resursus, juos prijungti. Toliau naudojant šią naują laikmeną, joje sukurti virtualių diskų failus pvz. .vhdx, .qcow2. Tokius virtualius diskus galime sukurti jau skirtingo dydžio ir juos prijungti taip pat prie sistemos, kaip pačios sistemos diskus.
Skirtumo vartotojas nepastebės, o mes įsigysime daugiau resursų valdymo galimybių. Viena iš jų, lengvai galėsime perkelti duomenis, esančius šiuose diskuose, nes patys virtualūs diskai yra tiesiog failai.

Duomenų sauga VPS serveriuose

Kadangi VPS tarnybinės stotys veikia nutolusiame duomenų centre ir virtualizuotoje aplinkoje, duomenų sauga yra labai svarbi norint apsaugoti informaciją, tuo pačių užtikrinant paslaugų tęstinumą. Kad ir kokioje aplinkoje yra dirbama su duomenimis, visada reikia užtikrinti pagrindinius saugos principus ir daryti duomenų kopijas. Visos atsarginių duomenų kopijų strategijos yra naudojamos ir virtualizuotoje aplinkoje. Reikia parinkti bent vieną kuria ir taikyti. Rekomenduojame minimali strategija yra „3-2-1”.

Taip pat reikia ,jei yra tokia galimybė, įgalinti duomenų šifravimą jūsų turimuose aplinkose. Naudojant šifruotus duomenų diskus, galite apsaugoti jautrius duomenis duomenų vagystės kibernetinės atakos atveju. Bet abejo būtina duomenis perduoti šifruotais duomenų kanalais į/iš tarnybinių stočių naudojant tinlo paslaugas (pvz. SSL/TLS, SSH/SFTP).

Daugiau apie atsarginių duomenų kopijas VPS serveryje

Reguliarios atsarginės kopijos yra būtinos siekiant apsaugoti jūsų duomenis nuo praradimo. VPS aplinkoje atsarginės kopijos gali būti daromos:

  • Teikėjo lygiu – VPS paslaugų teikėjai dažnai siūlo ir privalo turėti automatizuotas atsargines kopijas, kurios saugomos jų infrastruktūroje. Esant duomenų praradimui, iš jų yra atkuriami duomenys. Tačiau kartais, teikėjo infrastruktūra patiria kibernetines atakas ir tokios duomenų kopijos tampa bevertės. Iš jų atstatyti duomenis tampa nebeįmanoma.
  • Vartotojo lygiu – kaip sistemos vartotojas galite kurti ir valdyti savo atsargines duomenų kopijas failų lygyje. Šiam tikslui galite naudoti įvairias programas ir jų rinkinius, arba tiesiog specializuotas atsarginių duomenų kopijų programas pvz. tokias kaip Veeam, Bacula, Duplicity.

Atsarginių kopijų VPS strategijos pavyzdys

Pateiksime vieną VPS duomenų atsarginės kopijos sukūrimo vartotojo lygyje strategiją, kurios pagalba sukursime duomenų kopiją, suarchyvuosime, užšifruosime, sukursime failo maišos reikšmę ir viską iškelsime išorinę duomenų talpyklą. Duomenų persiuntimui iš panaudojant SFTP tinklo paslaugą.

Jei skaitėte straipsnį nuo pradžios ir pasinaudojote patarimais, tada turite turėti vieną virtualų diską, prijungtą kaip tik atsarginėms kopijoms saugoti. Šiame diske yra katalogas pavadintas SQL_DATA. Jame yra sukuriamos duomenų bazių duomenų kopijos. Atitinkamai duomenų bazei sukuriami duomenų bazės pavadinimo *.bak failai. Šie failai gali būti generuojami vėl pagal Jūsų verslo nelaimių atkūrimo planą DRP (angl. Disaster Recovery Plan).

Toliau suarchyvuosime ir užkoduosime visą SQL_DATA katalogą į kitą, išsiuntimams paruoštą katalogą pavadinimu CARGO.
Papildomai CARGO failų katalogui pridedame Windows grupę „OpenSSH Users” su „Modify” leidimu.

@echo off
:: Kada buvo sukurta atsargine kopija
for /f "tokens=2-4 delims=/.- " %%a in ('echo %date%') do (
set YYYY=%%c
set MM=%%a
set DD=%%b
)

:: Suformatuojame data YYYY-MM-DD
set DATESTAMP=%YYYY%-%MM%-%DD%

:: Priskiriame reikalingus kintamuosius

set ZIPFILE=backup_%DATESTAMP%.zip
set SOURCE="C:\SQL_DATA"
set PASSWORD=Slaptazodis! :: Testinis Slaptazodis :)
set HASHFILE=backup_%DATESTAMP%.SHA265.txt

:: Sukuriame archyvini faila

"C:\Program Files\7-Zip\7z.exe" a -tzip "C:\CARGO\"%ZIPFILE% %SOURCE% -mem=AES256 -p%PASSWORD%

:: Sukuriame SHA-256 maisos faila su data
certutil -hashfile "C:\CARGO\"%ZIPFILE% SHA256 > "C:\CARGO\"%HASHFILE%

Viską teisingai atlikus, turime sugeneruotus du failus pavyzdys sql_data_2025-04-03.zip ir sql_data_2025-04-03.SHA265.txt.

Duomenų kopijų iškėlimas iš VPS

Sukūrus duomenų atsargines kopijas, reikia nepamirši jų iškėlimo iš Jūsų VPS darbinės stoties. Ko daugiau kopijų turėsime skirtingose duomenų saugojimo vietose, tuo labiau bus užtikrintas jų atkūrimas, esant duomenų praradimo atveju. Iškėlimas arba duomenų išsiuntimas gali būti atliekamas įvairiais būdais, priklausomai nuo poreikių ir technologijų.

Viena iš labiausiai naudojamų komercinių atsarginių duomenų kūrimo ir valdymo programinė įranga yra Veeam Data Platform. Jos pagalba jūs pilnai valdote atsarginių duomenų kūrimą, perkėlimą ir dar daugelį su duomenimis susijusių operacijų. Tačiau jei nenaudojame komercinių atsarginių duomenų kopijų kūrimo ir valdymo programinės įrangos, sprendimai bus grįsti šiais būdais:

SSH/SFTP (angl. Secure File Transfer Protocol) – saugus failų perdavimo protokolas, pagrįstas SSH, kuris leidžia saugiai perkelti failus.

RSYNC (angl. Remote Sync) – *nix/linux sistemų įrankis, leidžiantis efektyviai ir greitai sinchronizuoti failus. Gali būti naudojamas tiek lokaliai (tarp dviejų vietinių katalogų), tiek nuotoliniu būdu (tarp VPS ir kitos sistemos).
Bet to šis įrankis leidžia greitai perkelti tik tuos failus, kurie pasikeitė, todėl yra efektyvus didelių duomenų perdavimui.

Šiek tiek apžvelgę programinę įrangą grįžtame prie mūsų pavyzdžio. Kaip jau supratote turimas VPS yra su Windows OS. Todėl pateiksime pavyzdį kaip sukonfigūruoti SFTP/SSH paslaugą Windows Server OS 2025.

Patikriname ar pridėtos šios paslaugos sistemoje, nes Windows Server OS 2025 operacinėje sistemoje yra įjungto pagal nutylėjimą.

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Paleidžiame SSH tinklo paslaugą ir pažymime, kad startuotų po sistemos perleidimo.

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Atidarysime ugniasienę ir leisi prisijungti tik iš, kaip pavyzdys, IP adreso 81.81.81.100.

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 81.81.81.100 -LocalPort 22 -Program "C:\Windows\System32\OpenSSH\sshd.exe"

SSH/SFTP tinklo paslauga jau veiki, tačiau nurodysime dar kelis reikalingus parametrus, kad prisijungęs klientas pasiimtų reikiamas atsargines kopijas.

Atidarome failą C:\ProgramData\ssh\sshd_config ir įrašome jei nėra tokią eilutę:

ChrootDirectory C:\CARGO
PasswordAuthentication no # reikės sukuriant ssh kriptografiniais raktais prisijungimą

#REKOMENDACIJA: ŠIAME FAILE YRA IR KITŲ NUSTATYMŲ, KURIŲ PAGALBA SSHD SERVISĄ, GALIME DAR LABIAU PRITAIKYTI IR PADARYTI SAUGESNIU NAUDOTI.

Perkrauname tinklo servisą.

ReStart-Service sshd

Sukuriame naują vartotoją laivelis duomenų iškėlimui ir pridedame jį į grupę „OpenSSH Users”.

$password = ConvertTo-SecureString "Labas@2025" -AsPlainText -Force
New-LocalUser -Name laivelis -Password $password -FullName "Laivelis" -Description "sftp vartotojas"
Add-LocalGroupMember -Group "OpenSSH Users" -Member "laivelis"

Jei viskas atlikta sėkmingai, turime veikiančia tinklo paslaugą SFTP atsarginėms kopijoms iškelti iš jūsų turimo VPS. Duomenų iškėlimui galime panaudoti taip pat VPS paslaugą, sukurdami dedikuotą tik šiam tikslui sistemą, arba net kelias tokias skirtinguose regionuose.

Kaip pavyzdį pateiksime turimą VPS su *nix operacine sistema. Šioje sistemoje, veiks programa, kuri automatizuotai perkelinės atsarginių duomenų kopijas tam tikru laiku, iš mūsų Windows OS VPS.

Kad perkėlimas vyktų automatizuotai ir nebūtų naudojami slaptažodžiai, sukursime SSH kriptografinius raktus, su kuriais jungsimės prie sistemos.

Sukuriame SSH raktus mūsų turimoje kliento sistemoje:

ssh-keygen -t rsa -b 4096 -f laivelis -C "laivelis@81.81.81.82"

Jei naudosime sistemos root vartotoją (nerekomenduotina, tačiau čia pavyzdys) sugeneruotus failus perkelsime į /root/.ssh/ katalogą.

mv laivelis* /root/.ssh/

Toliau perkelti reikia laivelis.pub failo turinį į pagrindinį VPS, kuriame veikia SFTP tinklo paslauga, failą C:\Users\%USERNAME%\.ssh\authorized_keys arba perkopijuoti ir pervadinti į authorized_keys.

Autentikaciją susitvarkėme, dabar parašysime paprastą bash programėlę, kuri atliks duomenų perkėlimą naudojant sftp tinklo paslaugą kitoje VPS tarnybinėje stotyje.

!/bin/bash
# Prisijungimo duomenis
SFTP_HOST="81.81.81.82"
SFTP_PORT=22
SFTP_USER="laivelis"
LOCAL_DIR="/backups/"
PRIVATE_KEY="/root/.ssh/laivelis"
# SFTP klientas
sftp -i "$PRIVATE_KEY" -oBatchMode=yes -oPort=$SFTP_PORT "$SFTP_USER@$SFTP_HOST" << EOF lcd $LOCAL_DIR cd $REMOTE_DIR mget * bye EOF

Pabaigai, galime sukurti laiko tvarkaraštį sistemoje (pvz. crontab), kad parašyta programėlė būtų paleidžiama atitinkamu laiku ir atliktų užduotį.

Apibendrinant pateiktą pavyzdį – saugus ir paprastas sprendimas, užtikrinantis atsarginių duomenų kopijų iškėlimą iš Windows OS VPS tarnybinės stoties. Jis gali būti pritaikytas ir išplėstas pagal poreikius: žurnaliniai įrašai, sėkmingų/nesėkmingų įvykių gavimas į el. paštą, pats sprendimas suprogramuotas viena ar kita programavimo kalba (pvz. Python, C++), sukurtą internetinė prieiga prie failų archyvo ir t.t. Galimybės yra tikrai nemažos.

Tikiuosi, kad apie VPS duomenų iškėlimą šiek tiek supažindinome ir tai padės lengviau suprasti kas yra atsarginės duomenų kopijos, kaip sukuriamos ir kaip jos iškeliamos iš Jūsų turimos VPS aplinkos.

Publikavo: 

Padedame prisijungti prie pasaulio ipv4/ipv6 lygio tinklų pagalba. ITIL, CISCO, Mikrotik, MCP, CompTIA, LPI