OrangeBOX: OrangePI негізіндегі қауіпсіз резервтік сақтау құрылғысы: 5 қадам
OrangeBOX: OrangePI негізіндегі қауіпсіз резервтік сақтау құрылғысы: 5 қадам
Anonim
OrangeBOX: OrangePI негізіндегі сақтық көшірме сақтау құрылғысы
OrangeBOX: OrangePI негізіндегі сақтық көшірме сақтау құрылғысы
OrangeBOX: OrangePI негізіндегі сақтық көшірме сақтау құрылғысы
OrangeBOX: OrangePI негізіндегі сақтық көшірме сақтау құрылғысы

OrangeBOX-кез келген серверлерге арналған қашықтан сақтауға арналған резервтік қорап.

Сіздің сервер жұқтырылуы, бүлінуі, жойылуы мүмкін және сіздің барлық деректеріңіз OrangeBOX -те сақталған, және сіз оны қосатын және басқа ештеңе жасамай -ақ прогресс индикаторын көрген резервтік құрылғы сияқты мүмкін емес миссияны ұнатпайды (тек сиқырға сеніңіз) соңында түтін шықпайды:)).

OrangeBOX - бұл менің бірінші жобам, ол негізінен бағдарламалық жасақтама емес, аппараттық бұзу. Бұл негізінен СКД қосылған арнайы жасалған NAS.

1 -қадам: аппараттық бөліктер

Аппараттық бөліктер
Аппараттық бөліктер
Аппараттық бөліктер
Аппараттық бөліктер
Аппараттық бөліктер
Аппараттық бөліктер

Orange PI zero-ашық бастапқы коды бар бір тақталы компьютер. Ол Android 4.4, Ubuntu, Debian -ды басқара алады. Ол AllWinner H2 SoC жүйесін қолданады және 256MB/512MB DDR3 SDRAM (256MB нұсқасы - стандартты нұсқа. Orange Pi Zero - бұл технологиямен құруды бастағысы келетіндердің барлығына арналған, оны тұтынып қана қоймай. Бұл қарапайым, қызықты, пайдалы құрал) Сіз айналаңыздағы әлемді басқаруды бастау үшін қолдана аласыз (https://www.orangepi.org/orangepizero/), сондықтан бұл бізбен жұмыс істеуді жалғастыруға мүмкіндік береді:)

  • Металл/пластик/ағаш қорап (мен ескі Yamaha cd-rw қорабын қолдандым)
  • Апельсин PI Zero немесе одан да жақсы (егер сіз басқа модельді қолдансаңыз, GPIO түйіні өзгеруі мүмкін)
  • 2x20 RGB СКД экрандары
  • Кез келген SFF 3.5/ LFF 2.55 USB жетегі
  • Sata -> USB адаптері. Есіңізде болсын, OrangePI дискінің максималды сыйымдылығына шектеу қоймайды, бірақ көптеген USB-SATA көпірлері (2TB max). Мен қолданатын қызғылт сары PI Zero тек 28 Мб/с тиімді жіберу жылдамдығымен бір ғана USB 2.0 порты бар. Мен USB3.0 (болашақ жаңартуларға дайындалған) -> SATA көпірін таңдадым (бренд туралы айтылмайды) және ол шектеулі, сондықтан JMicron JMS567 чип негізіндегі көпірлер сияқты үлкен дискілерді қолдайтыны дәлелденген көпірді таңдаған дұрыс.. Сатып алудан бұрын жеке зерттеу жүргізіңіз. Мен бұл жобада 2TB sata дискісін қолдану арқылы жылдамдық пен қатты дискінің шектеулерімен өмір сүре аламын (егер сіз үлкенірек дискілерді қойсаңыз, ол танылады, бірақ ОЖ тек оның бірінші 2ТБ -ын көреді, сондықтан қалған сыйымдылық болады. жоғалған).
  • 12 В 2,5 А немесе одан жоғары ампер адаптері. OPI Zero үшін шамамен 500мА қалыпты пайдалануды және стандартты LFF SATA жетегі үшін 1,5А шыңын есептеңіз. Шамадан тыс мөлшер ешқашан ауырмайды. Менің қондырғымда Yamaha psu (12+5В рельстерінің екеуінде де жеткілікті ток бере алатын) өкінішке орай жарылды: (негізгі қосқышты GND -ге бір секундқа сұрыптау себебінен мен тұрақты адаптерге желімдеуім керек еді) кем дегенде, бұл қорапты бірнеше грамм жеңіл етті.
  • Бак конвертері DC-DC 12V-> 5V. Мен IronForge сияқты реттелетін мини бакты қолдандым, тамаша жұмыс істейді.

Қосымша

Егер сіз + 10 доллар жұмсауға дайын болсаңыз, онда сіз Orbe Pi Plus (https://www.armbian.com/orange-pi-one-plus/) ала аласыз, ол сізге форма факторы болып табылады және сізге Gbe және SATA3 береді. Бұл үшін Libra PI сымдары кітапханасын қолдануға болады: https://github.com/OrangePiLibra/WiringPi, бірақ GPIO түйіні басқа болғандықтан, бұл жазбаның ауқымынан тыс.

Сіз сондай-ақ SATA қосқышы бар жаңа Orange PI Plus2 көмегімен жасай аласыз және sata-> usb түрлендіргіштерін олардың шектеулерімен бірге өткізіп жібере аласыз. Егер сіз FreeBSD немесе басқа BSD қолдануды жоспарласаңыз, Orange PI сериясы ең жақсы таңдау болмауы мүмкін, себебі олардың аппараттық қамтамасыз етілуі шектеулі (мысалы, жүктеу үшін USB таяқшасын пайдалану қажет). BSDs үшін бұл Raspberry PI қолдану бойынша ең жақсы кеңес. СК үшін С коды да, барлық қабық сценарийлері UNIX -тің кез келген басқа жүйелеріне тасымалданады.

2 -қадам: Жабдықтың дизайны

Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны

Yamaha қорапшасы мұның барлығын сақтауға жеткілікті болды, ол Orange PI дербес компьютеріне немесе қалыпты Raspi форм-факторлық тақтасына жеткілікті орын болмас еді.

Ethernet қораптың артындағы кеңейткішпен шығарылды. Есіңізде болсын, Orange PI нөлінде тек 100мбит/с Ethernet интерфейсі бар, егер сіз тезірек қаласаңыз, Asus Tinkerboard/RPI3B+/Басқа Orange PI модельдері сияқты басқа тақтаны пайдалану қажет болады.

Қате PIN кодын шығару - бұл жобада сіз жасай алатын жалғыз және жалғыз қателік, сондықтан кейбір ережелерді қолданған жөн:

1, Әрқашан END -END -ге дейін бірдей түсті кабельді қолдануға тырысыңыз. Мен өз қолымнан ер-еркек/еркек-әйел/әйел-әйел кабельдері жетіспейтіндіктен, мен болмайтын кейбір жобаларда дәл осындай «қателікке» жол беремін. тізбек Егер сіз өз жұмысыңызды дұрыс құжаттамасаңыз, бұл бірнеше жылдан кейін бас ауруларына әкелуі мүмкін, онда жөндеу, жаңарту қажет.

2, қосқыштарға ыстық желімді қолданыңыз. Стандартты мм/mf/ff кабельдік ардуино-стартерлерді қолданған жағдайда, сапа жоғары емес, коннекторлар сырғып кетеді. Егер сіз бұл ұзақ мерзімді құрылғы болатынын білсеңіз (мүмкін ол сынғанша қолданыңыз ?!), онда оларды бірге ұстау үшін коннекторлардың OrangePI және СКД жағына ыстық желімді қолданған дұрыс. Қажет болса, оны кейін ерітуге/сызуға болады.

3, OrangePI нөлдік сымы Нашар жаңалық - бұл Orange PI түйреуіші Raspberry PI 0/1/2/3 сияқты ЕМЕС және басқа Orange PI модельдерінің арасында айырмашылық бар. Барудың ең жақсы жолы - сымдар кітапханасын алу (Orange PI Zero нұсқасы). Кескін сәл түсініксіз болуы мүмкін, бірақ бұл мен таба алатын ең жақсы бейнелер. Біреуі - екіншісінің 180 градусқа айнасы. CLI графикалық емес бейнені түсіну қиынырақ болса да, бұл ең тура бағыт.

Сіз әрқашан розеткалардың 2 ұшын бір жағын (+3.3/+5V) Позитивті ұшы ретінде, ал екіншісін НЕТАТИВТІ (бір GND) -> бұл ETHERNET портына қарайтын қосқыштың соңы деп қарастыра аласыз..

Wiring PI Zero кестесінен сізге wPI басқалары туралы ұмытып кететін бір ғана баған қажет болады.

Мысалы, LCD_E 15 қосылу үшін (яғни wPI 15!) Және LCD_RS 16 (яғни wPI 16!) Коннектордың Позитивті ұшынан түйреуіштерді санау (қаламмен немесе кішкене бұрағышпен оңай). Бұл физикалық түрде 4 түйреуіш пен 5 түйреуішке төмендейді.

4, топқа бөлу. Егер қолданылған түйреуіштерді бір -бірінің қасына қою мүмкіндігі болса (оларды топтастыру) әрқашан соларды таңдайды, бұл оларды ыстық желімсіз де бір -бірімен ұстауға мүмкіндік береді, сонымен қатар 2x 4x 6x molex коннекторлары бар басқа жобаларда. Бір -бірінің жанында орналасқан түйреуіштерді пайдаланыңыз. Бұл жерде сіз жасай алатын ең жақсысы-2-3 с тобы (ескі дербес компьютерлерден сақталған өтпелі кабельдерді пайдалану кезінде өте қолайлы).

OrangePI СКД экранына қосылу үшін қолданылатын түйреуіштер:

// WIRINGPI PIN НОМЕРЛЕРІН ПАЙДАЛАНЫҢЫЗ

#define LCD_E 15 // Қосу түйреуіші #LCD_RS 16 анықтау // тіркеу таңдау түйреуіші #анықтау LCD_D4 5 // Деректер түйіні 4 #LCD анықтау_D5 6 анықтау түйіні 5 #Деректер түйрегіші 5 #LCD_D6 10 анықтау нүктелері #LCD_D7 11 анықтау // Деректер түйіні 7

RGB артқы жарығын басқару үшін қолданылатын түйреуіштер

$ G жазыңыз 10

$ G жазу 4 1 $ G жазу 7 1

Қызғылт сары PI нөлдік wPI түйреуіштері 1, 4, 7. Бұл СКД стандартты түзетуге қарағанда жасай алатын жалғыз сиқырлы көк немесе артқы жарықтандырғыш жасыл жарық диодты жарықтандыратын кристалды дискіде. түстер. Қызыл, жасыл және көк. Қайсысының комбинациясын қосу арқылы сіз негізгі түстерден әр түрлі түстерді араластыра аласыз, бірақ олардың түстерінің жарықтығын басқара алмайсыз (тек қосулы немесе өшірулі).

Аддитивті түстерді араластыру: қызыл түске жасыл түс беру сары түс береді; көк түске қызыл қосу қызыл күрең түс береді; көк түске көгілдір түс береді; барлық үш негізгі түстерді қосу ақ түс береді.

3 -қадам: Операциялық жүйе

Операциялық жүйе
Операциялық жүйе

OrangeBOX жүктеледі және Armbian linux (Debian Stretch негізінде) 4.14.18-sunxi ядросы қауіпсіз желіаралық экраны бар, VPN-ге қосылады және серверден қашықтағы резервтік пәрмендерді күтеді.

Дизайн принциптері:

-Толық дискілік шифрлау (құрылғыда резервтік дискіні ашуға арналған кілт жоқ. Ол қашықтағы серверден ram /dev /shm -ге уақытша көшіріледі, диск ашылады және кілт өшіріледі. Сақтық көшірме аяқталғаннан кейін) диск жабылады және OrangeBox автоматты түрде 1 минуттан кейін өшеді.)

-Барлық пәрмендер мен кілттер қашықтағы серверден жіберіледі (құрылғыда тек vpn сертификаты бар), ол қашықтағы серверге ЕШҚАНДАЙ қол жеткізе алмайды, тіпті осы құрылғыдан ssh брандмауэр.

-Жергілікті файлдық жүйелер жүктелу үшін шифрланбаған, бірақ пайдалы ештеңе жоқ, және VPN байланысы екінші жағынан өте шектеулі болғандықтан, тіпті құрылғы толық жоғалған кезде де шабуылдаушы ештеңе жасай алмайды.

Https://www.armbian.com/orange-pi-zero/ сайтынан Armbian Stretch жүктеп алыңыз

Жүйені іске қосыңыз:

apt-get update && apt-get upgrade

apt-get sysvinit-core sysvinit-utils орнатыңыз

/Etc /inittab өңдеңіз, барлық консольді өшіруге болады, себебі қорап бассыз ретінде пайдаланылады. Келесі бөлімге түсініктеме беріңіз:

#1: 2345: respawn:/sbin/getty 38400 tty1

#2: 23: respawn:/sbin/getty 38400 tty2 #3: 23: respawn:/sbin/getty 38400 tty3 #4: 23: respawn:/sbin/getty 38400 tty4 #5: 23: respawn:/sbin/getty 38400 tty5 #6: 23: respawn:/sbin/getty 38400 tty6

Нағыз ашық бастапқы коды бар бағдарламалық жасақтамасы жоқ болу үшін қорапты қайта жүктеңіз және systemd жойыңыз.

apt-get remove --purge --auto-remove systemd

Кейбір пакеттерді орнатыңыз

apt-get install cryptsetup vim htop rsync экраны gcc make git

Wiringpi кітапханасын орнатыңыз

cd /usr /src

git clone https://github.com/xpertsavenue/WiringOP-Zero.git cd WiringOP-Zero chmod +x./build./build

LCD дисплейі үшін қызғылт сары пайдаланушыны жасаңыз

groupadd -g 1000 апельсин

useradd -m -d /home /orange -s /bin /bash -u 1000 -g қызғылт сары

Сізге қарамайтын күзетші

apt-get installd dogg

/Etc/default/watchdog қарап жатырсыз # Watchdog жүктеу кезінде басталсын ба? 0 немесе 1 run_watchdog = 1 # Бақылаушы қызметін тоқтатқаннан кейін wd_keepalive басталсын ба? 0 немесе 1 run_wd_keepalive = 1 # Күзетшіге кіріспес бұрын модульді жүктеңіз watchdog_module = «none» # Мұнда қосымша қарауыл опцияларын көрсетіңіз (manpage қараңыз).

/Etc/watchdog.conf файлына қарайды

# Кем дегенде бұларды қосыңыз

max-load-1 = 24 max-load-5 = 18 max-load-15 = 12

/etc/init.d/watchdog басталуы

Кем дегенде 1 ядро ағыны мен 1 процесс болуы керек:

түбір 42 0.0 0.0 0 0? Мен <10:50 0:00 [қарауыл] түбірі 14613 0,0 0,2 1432 1080? SLs 13:31 0:00/usr/sbin/watchdog

Тексеру:

Қалған деректерді дискіге жазу үшін бәрін тоқтатып, синхрондау && синхрондау & синхрондауды орындағаныңызға көз жеткізіңіз. Содан кейін түбірлік мәселе ретінде:

echo 1> /dev /watchdog

Бірнеше секундтан кейін құрылғы қайта жүктелуі керек.

Нұсқаулықта айтылғандай:

o Процесс кестесі толды ма?

o Бос жад жеткілікті ме? o Бөлінетін жады жеткілікті ме? o Кейбір файлдарға қол жетімді ме? o Берілген аралықта кейбір файлдар өзгерді ме? o Орташа жұмыс жүктемесі тым жоғары ма? o Файл кестесінің толып кетуі орын алды ма? o Процесс әлі де жүріп жатыр ма? Процедура pid файлы арқылы анықталады. o Кейбір IP -адрестер пингке жауап бере ме? o Желілік интерфейстер трафикті қабылдай ма? o Температура тым жоғары ма? (Температура туралы деректер әрқашан қол жетімді емес.) O Кез келген тесттерді орындау үшін пайдаланушы анықтайтын пәрменді орындаңыз. o /etc/watchdog.d сайтынан табылған бір немесе бірнеше тексеру/жөндеу пәрмендерін орындаңыз. Бұл командалар аргументті тексеру немесе жөндеу арқылы шақырылады. Егер осы тексерулердің кез келгені сәтсіз болса, бақылау қызметі өшіруді тудырады. Егер пайдаланушының екілік екілік санынан басқа осы сынақтардың біреуі бір минуттан артық уақытқа созылса, машина да қайта жүктеледі.

Бұл күзетші x86 кәдімгі архитектурасында жақсы жұмыс істеуі мүмкін, бірақ ARM негізіндегі Raspberry PIs, Orange PI сияқты тақталарда сансыз рет сәтсіздікке ұшырады. Жүйе тіпті күзетші ілініп тұрған күйде қалуы мүмкін. Қалай болғанда да, оны конфигурациялайық, мүмкін ол жылдар бойы apt-get жаңартумен жақсарады:(

4 -қадам: Бағдарламалық жасақтама дизайны

Бағдарламалық қамтамасыз ету дизайны
Бағдарламалық қамтамасыз ету дизайны

Сақтық көшірме жасау процесінің өзі rsync негізіндегі (ең жақсы резервтік көшіру құралы) деректер SERVER-> OrangeBOX арқылы алынады.

Деректерді rsync -тен шығару - бұл СКД -де сақтық көшірме туралы прогресс жолағының болуы жобаның жалғыз қиын бөлігі болды.

Сақтық көшірме барысын есептеудің 3 мүмкін әдісі бар:

1, https://wintelguy.com/transfertimecalc.pl сияқты формулаларды қолданып, аударымның шамамен болатын уақытын анықтаңыз.

Тасымалдау уақыты (д: сағ: м: с): 0: 02: 44: 00

Салыстыру үшін: 123 ГБ файлды әр түрлі желілік сілтемелер бойынша тасымалдаудың болжамды уақыты (d: h: m: s): T1/DS1 желісі (1.544 Мбит/с) - 7: 09: 01: 46 Ethernet (10 Mbps) - 1:03: 20:00 Fast Ethernet (100 Mbps) - 0: 02: 44: 00 Gigabit Ethernet (1000 Mbps) - 0: 00: 16: 24 10 Gigabit Ethernet (10 Gbps) - 0: 00: 01: 38

Егер rsync аяқталса, ол сценарийді есептеуді тоқтатуға сигнал береді. Бұл әдіс шамамен алынған және сенімді емес, сонымен қатар сілтеме жылдамдығы түзетілмеген, ол баяулауы мүмкін, қайтадан жылдамдауы мүмкін. Бұл тек теориялық есеп.

2, біз қазірдің өзінде қанша деректерді синхрондағанымызды анықтау үшін каталогтағы өлшемді тексеруді жасаймыз. Жүздеген ГБ кіші файлдармен өте баяу жүруі мүмкін (дегенмен Linux -тегі du -файлдар, егер сіз оны қайта іске қоссаңыз, кейбір кэштеуді жасайды)

А хост -> резервтік көшірме жасалатын сервер деректері Директорлар диапазоны: 235 ГБ

В хост -> Қызғылт сары қорап клиентінің деректері бізде қазір бар Директорлар: 112 ГБ

Дельта көлемі - 123 Гбайт.

3, егер файлдық жүйе біздің жағдайда/dev/mapper/backup сияқты арналса, біз сақтық көшірменің қалай жүріп жатқанын анықтау үшін файлдық жүйені пайдаланудың жалпы индикаторын пайдалана аламыз және бұл өте тез. Бұл жағдайда бізге rsync stdout -ты кез келген жерге жіберудің қажеті жоқ, құрғақ rsync іске қосыңыз, ол аяқталғанша күтіңіз, дельтаны байтпен есептеңіз және резервтік дискіде және voila -да бар бос кеңістікті тексеріңіз. енді жақсы диаграмма жасаңыз. Бұл мен таңдаған әдіс болды және міне менің сценарийім:

#!/bin/bash

NLD бойынша OrangeBOX үшін # сақтық көшірме прогресс калькуляторы # Нұсқа: 0.2 (2018/03/05) # # Оны cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # артықшылықты пайдаланушысы ретінде іске қосыңыз. Бұл сценарий тек СКД -да деректерді көрсетуге жауап береді, ол негізгі бағдарламамен позициялар мен файлдарды құлыптау арқылы жанама байланысады. BACKUP_DRIVE = «/dev/mapper/backup» VFILE = «$ HOME/start.pos» # резервтік көшірменің басында # дискіні пайдалану TFILE = «$ HOME/trans.size» # алдын ала есептелген тасымалдаудың жалпы өлшемі BFILE = «$ HOME/ backup.lck « # басталған күйді анықтайды FFILE =» $ HOME/backup.fin « # аяқталған күйді анықтайды LFILE1 =» $ HOME/lcd1.bar « # СКД прогресс индикаторының деректері LFILE2 =» $ HOME/lcd2.bar « # СКД барысы индикаторлық деректер SHUTDOWN = «1» # Егер 1 болса, ол резервтік көшірменің соңындағы қорапты өшіретін басқа сценарийді іске қосады BACKUP_CURRENT = «0» # инициализациялау керек, бірақ есептеледі DRIVE_SIZE = «» # Диск өлшемі байтпен (екінші реттік) тексеріңіз) LCD = «sudo /bin /lcd» функциясы is_mount () {grep -q «$ 1» /proc /mounts status = $? } функция қызыл () {sudo /bin /lcdcolor қызыл} функция жасыл () {sudo /bin /lcdcolor жасыл} функция көк () {sudo /bin /lcdcolor blue} # Таза күй (жүктеу кезінде bootup_display.sh арқылы орнатылады). Ешқандай сақтық көшірме жасалмайды, СКД күйін бұзбаңыз. Тек сақтық көшірме бар болған жағдайда ғана прогресті көрсетіңіз => Бастапқы файл жоқ және финдік файл жоқ = егер [! -f $ BFILE] && [! -f $ FFILE]; содан кейін 1 fi # шығыңыз. Егер сақтық көшірме аяқталған болса, бұл сценарий оны көрсетеді және келесі инициацияға дейін қайта іске қосылмау үшін құлыптарды алып тастайды. егер [-f $ FFILE]; содан кейін жасыл $ LCD «Сақтық көшірме» «** Аяқталды **» жаңғырық «Сақтық көшірме аяқталды» rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Егер [$ SHUTDOWN == «1»] сақтық көшірме аяқталған болса; содан кейін «Өшіру сценарийі орындалуда …» жаңғырығы /home/orange/shutdown.sh & fi exit 0 fi # Осы сәттен бастап сценарий ЖҰМЫС сақтық көшірме болған жағдайда ғана орындалады # сондықтан барлық қателер СКД -де шығарылады және сценарийге әкеледі # тоқтату үшін, бірақ ол backup.lck файлын жоймайды, осылайша мұнда қайта -қайта # кіріп, шарттарды бағалайды. is_mount $ BACKUP_DRIVE, егер [$ status -ne 0]; содан кейін қызыл $ LCD «ERR: резервтік диск» «орнатылмаған!» echo «Резервтік диск орнатылмаған» шығу 1 fi егер [! -s $ TFILE]; содан кейін қызыл $ LCD «ERR: transfer» «бос» echo «Көлік өлшемін есептеу файлы бос.» шығу 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') if [-z $ BACKUP_OVERALL]; содан кейін қызыл $ LCD «ERR: Өлшемді қайта оқу» «» серверден жарамсыз «echo» Сақтық көшірме жалпы өлшемін қайта қарау жарамсыз 1 «шығу 1 fi, егер!

Код қарапайым болғанымен, ол не істейтінін сипаттайды:

1, Егер BFILE немесе FFILE жоқ болса (бұл нақты іске қосылғаннан кейінгі күй), бұл сақтық көшірме жасау процесі жоқ екенін көрсетеді, сондықтан ештеңеден бас тартпаңыз. Осылайша сіз хост атауы, ip, жұмыс уақыты және т.

2, is_mount $ BACKUP_DRIVE бөліміне өтейік. Естеріңізге сала кетейік, мұнда BFILE бар болғандықтан, резервтік көшірме басталды. Енді код әр түрлі қателерді тексереді, мысалы, резервтік диск орнатылған ба? немесе басқа қателер. Есіңізде болсын, бұл тек DISPLAY бағдарламасы, егер оның көлемі резервтік көшірмеден асса да, ол ештеңені тоқтатпайды.

3, OK барлық қателік тексерулер пайыздық графикті есептеу үшін тазартылған уақыт. Алдымен сценарий сақтық көшірме файлдық жүйесінде байттармен пайдаланылатын кеңістіктің «суретін» алады және оны VFILE -де сақтайды. Мұның мақсаты не: bash сценарийі азаматтығы жоқ, ол орындалу арасындағы деректерді жоғалтады, сондықтан егер сіз алдыңғы орындаудағы кейбір деректерді «есте сақтағыңыз» келсе, оны бір жерде сақтау қажет. Біздің жағдайда бұл қарапайым мәтіндік файл. Қарапайым ету үшін, айталық, біздің START_POS - бұл 1 ГБ (бізде бар деректер), сақтық көшірмесін жасағымыз келетін нәрсе - +2 ГБ, ал жалпы дискінің сыйымдылығы - 10 ГБ.

4, Келесі жолы VFILE сценарийі жұмыс істегенде және ол BACKUP_CURRENT мәнін есептеу үшін оқылады (осылайша біз диск бос болмаған жағдайда бастапқы позиция қандай болғанын білеміз), дәл қазір қолданылатын кеңістіктің дельта болып табылады резервтік дискіде минус бастапқы позиция, біз VFILE -де соңғы раундта сақтадық (бұл сақтық көшірме басталған кезде дискіде болған деректер). Сценарий байтпен жұмыс істейді, бірақ оны жарты сағаттан кейін жеңілдету үшін біз 500 МБ деректердің резервтік көшірмесін жасадық, онда формула BACKUP_CURRENT = 1.5GB - 1GB (бастапқы күйі) => болады, ол бізге нақты деректерді 500 Мбайт қайтарады, яғни біз осы уақытқа дейін не сақтадық. Сіз сақтық көшірме жасаудың басында қандай бастапқы деректер болғанын бақыламай -ақ, бұл өлшемді есептеу сәтсіз болатынын көре аласыз, себебі дискіде 1 гигадтық деректер бар екенін білмей, дәл қазір пайдаланылатын кеңістік 1,5 ГБ екенін көреді. алдыңғы сақтық көшірмеден алынған, сондықтан сервер бізге 500 МБ орнына 1,5 ГБ деректерді жіберді деп болжауға болады.

5, BACKUP_OVERALL оқылады, бұл деректерді сервер бастапқы rsync құрған кезде есептеген (осылайша бұл Server-> OrangeBOX-тен сақталатын байт мөлшерін қамтитын сыртқы деректер көзі). Бұл мән қазіргі уақытта дискідегі ТЕГІН бос орынмен салыстырылады және егер ол одан асып кетсе, онда LCD -де қате туралы хабар пайда болады және сценарий орындалуды тоқтатады. Бұл сценарий тек қана дисплейде екенін есте сақтаңыз, ол резервтік көшіру процесіне кедергі жасамайды. Егер сіз дискідегі файлдарды тазартсаңыз немесе файлдардың саны қашықтан өзгерсе, сондықтан BACKUP_OVERALL бір сәтте өзгереді.

6, ақырында, біз бір нәрсені көрсетудің уақыты келген екінші деңгейлік тексерулерден өттік. Сценарий консольдегі және дисплейдегі деректерді қарапайым C қосымшасының көмегімен көрсетеді. Фон BLUE -ге ауыстырылды, бұл сақтық көшірменің ақырында басталғанын көрсетеді және прогресс келесі формула бойынша есептеледі PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Бұл ағымдағы соманы алатын негізгі пайыздық есеп, біздің мысалда 0,5 ГБ*100/2 ГБ = 25%.

7, сандар байттан Mega/Giga байтына түрлендіріледі және егер ол 1 ГБ -тан төмен болса, экран автоматты түрде МБ -да көрсетіледі.

8, біздің жағдайда мұны салыстыру үшін бір нәрсе қалды - 25 бағаналы СКД 20%. Бұл біздің мысалда 25 * 20/100 = 5 болар еді. Қазіргі уақытта СКД бағдарламасымен жаңарту жүзеге асады, ол бағдарламаға қоңырау шалған сайын ол бүкіл экранды қайта қарайды. Осылайша, бұл жағдайда экранда 5 хэшмарк # салу үшін 5 рет цикл іске қосылады, бұл әр раундта жыпылықтайтын көрінеді, сондықтан мен LFILE1 және 2 есептелетін прогресс жолағы деректерін жазамын, бұл жағдайда 5 раундта ##### болады және ол қайта оқылады және СКД экранында көрсетіледі. Сіз sdcard картасын қосымша жазу операцияларынан құтқару үшін LFILE1 мен 2 -ні ramdisk -ке қоя аласыз, бұл мен үшін ешқандай проблема туғызбады, сценарий cron -дан минутына бір рет жұмыс істейді.

9, сақтық көшірме rsync жұмыс істейтін серверден басқа сценарийді аяқтаған кезде, FFILE (Finish File) тиеді. Келесі циклде backup_progress.sh сақтық көшірме аяқталғанын көрсетеді және OrangeBOX өшіру үшін басқа сценарийді шақырады. Ол осы уақытта өзінің құлыптау файлдарын жояды, әрі қарай орындау мүмкін емес, сондықтан егер сіз бұл сценарий іске қосылған кезде келесі минутта өшіруді қоспасаңыз да, ол бірден өшеді, себебі BFILE жоқ және FFILE жоқ. Сондықтан резервтік көшірме қайта іске қосылмаса, ол сақтық көшірме аяқталған хабарды шексіз көрсетеді.

Қашықтағы сақтық көшірме сценарийі (orange-remote.sh):

Сақтық көшірме жасау үшін ssh кілтін және дискіге арналған luks шифрлау кілтін жасау қажет болады. Қашықтағы сақтық көшірмені бірінші рет қолмен іске қосқанда, ол апельсин ұяшықтардың хост саусақ ізін хост файлына сақтайды (осы сәттен бастап ол автоматты түрде cron арқылы іске қосылады).

DISK = «/dev/disk/by-id/…»

Қатты диск идентификаторын білу үшін uuid, blkid іске қосыңыз немесе сәйкес/dev/disk/каталогтарын іздеңіз.

Егер сіз бәрін сақтық көшірмелеуді қаламасаңыз, алып тастауды қамтитын каталогты орнатуға болады. Бұл өте тітіркендіргіш процесс, себебі rsync үшін құрылымның терең бір каталогын алып тастағыңыз келсе:

+ /а

+/a/b +/a/b/c +/a/b/c/d -/a/b/c/d/e +/dir2

Бұл сценарий OrangeBOX -те қашықтан пәрмендерді орындайтындықтан, ол жақтан қайтарылатын айнымалыларды бақыламайды, сондықтан мен қашықтағы дискіні /tmp/contmsg.txt файлына ашу туралы хабарламаны шығаратын, содан кейін талдау жасайтын ақылды амалдарды қолданамын. ол сәтті болғанын көру үшін, егер олай болмаса, ол rsync екілік файлын орындалмайтын етіп өзгертеді, сондықтан rsync деректерді SDcard картасын толтыратын OrangePIs rootfs файлдарына жүктеуге тырыспайды. Сондай -ақ, бұл мүмкін болмас үшін chattr +i /mnt /backup бойынша өзгермейтін бит орнатудың жақсы тәжірибесі.

Өлшемді алдын ала есептеу серверде жергілікті түрде жүзеге асады, сондықтан келесі қадамда бұл файл OrangeBOX -ке жіберілуі керек.

Негізгі сақтық көшірме цикл ретінде басталады ((i = 0; i <100; i ++)); себебі төмен DSL/кабельдік интернет байланысы болған жағдайда rsync жиі үзілуі мүмкін. Егер ол сәтті аяқталса, онда қайталау қайталамай -ақ цикл үзіледі. Бұл жақсы операциялық жүйелермен мінсіз жұмыс істейді, бірақ егер қандай да бір себептермен қашықтағы терезе терезе болса және NTUSER. DAT жүйесінде үнемі кіруге рұқсат берілмесе, rsync қате кодын қайтарады және бұл цикл 100 рет орындалады, содан кейін әлі де сәтсіз болады.

5 -қадам: Жабу және жасалатын істер тізімі

Жабу және жасалатын істер тізімі
Жабу және жасалатын істер тізімі
Жабу және жасалатын істер тізімі
Жабу және жасалатын істер тізімі

Менің нұсқаулығым 10 долларлық компьютерден өз бетінше Буффалодан асып түсетін NAS құрылғыларымен, ішкі ішкі бөлу, бос жұмыс орнынан айырылған, ажыратылатын құралдармен жұмыс істейтін линукспен қалай жақсы, неғұрлым теңшелетін құрылғы жасауға болатынын тағы бір рет көрсетеді. Windows бағдарламалық жасақтамасы, жабық микробағдарлама, нашар құжаттама және қолдау және сіз қанша ақша жұмсамасаңыз да, сіздің резервтік көшірмеңізді көрсететін прогресс индикаторы ешқашан OrangeBox қаншалықты керемет екенін көрсетпейді (мен онымен қызғылт сары CAT5 кабелін қолданамын: D).

Шағын компьютерлер біртұтас <100 $ бағасын сақтай отырып, күшейе түссе, біз оларды көбірек тапсырмалар үшін пайдалана аламыз. Бұл күндері Gbe Ethernet порттары 1-2 жыл ішінде жиі кездесетіндіктен, бұл тақталардағы жады күрт артады және оларды ZFS негізіндегі резервтік жүйелер үшін де қолдануға болады.

-C бағдарламасы бойынша дәнді дақылдардың ілгерілеу көрсеткіші (менің басқа жобамның бірі -WasserStation қараңыз). Дәл қазір lcdPuts (lcd, line1) көмегімен таңбалар режимінде қолданылатын # hashmark # таңбалары, оны 1 бағанды 5 бөлікке бөлу үшін символдық СКД қолданғанда да жақсартуға болады, ал негізгі С бағдарламасы 25 сияқты бүтін санды алып, сызып шығара алады. Графикалық СКД көмегімен прогресс жолағы дұрыс немесе одан әрі жақсарады

-Жаңа және жаңа резервтік көшірмелерді жасауға және оларды әр түрлі орындарға жылжытуға арналған алынбалы hdd болуы мүмкіндігі (егер қорапта бос диск анықталса, оны алғаннан кейін оны шифрлау кілтімен автоматты түрде пішімдеу керек).

-Егер сіз өзіңіздің жеке ісіңізді makerbot көмегімен басып шығарғыңыз келсе, OrangeNAS сізге қызықты болуы мүмкін:

Ұсынылған: