Апатқа төзімділік — бұл жүйенің оның бөліктерінің біреуінде немесе бірнешеуінде ақау болғанда да жұмысын жалғастыру қабілеті. Есептеу жүйелерінің контексінде апатқа төзімділік жиі кластерлік технологиялар арқылы жүзеге асырылады. Апатқа төзімді кластер — бұл қызметтер мен қолданбалардың үздіксіз қол жетімділігін қамтамасыз ету үшін бірлесіп жұмыс жасайтын компьютерлер тобы (түйіндер).
Бұл мақалада біз апатқа төзімді кластерлердің негізгі қағидаларын және технологияларын, сондай-ақ оларды жүзеге асырудың ең жақсы тәжірибелерін қарастырамыз.
Апатқа төзімді кластерлердің негізгі қағидалары
-
Компоненттердің резервтеу (Redundancy): Бұл серверлер, желілік құрылғылар және деректерді сақтау құрылғылары сияқты маңызды компоненттердің қайталануын қамтиды. Бұл жүйенің бір компонентінің істен шыққан жағдайда жұмысын жалғастыруға мүмкіндік береді. Мысалдарға деректерді сақтау үшін RAID пайдалану, қосарлы желілік интерфейстер (NIC teaming) және ыстық резервтік серверлер (hot standby) кіреді.
-
Ақауларды бақылау және басқару (Failover Management): Жүйе өз компоненттерінің күйін үнемі бақылап, ақаулар анықталған кезде қалыпты жұмысын қалпына келтіру үшін автоматты түрде әрекет етеді. Бұл резервтік компоненттерге ауысуды, қызметтерді қайта қосуды және әкімшілерге хабарлауды қамтуы мүмкін. Prometheus сияқты мониторинг құралдарын және Alertmanager хабарландыруларын пайдалану жақсы тәжірибе болып табылады.
-
Жүктемені теңгеру (Load Balancing): Ресурстарды оңтайландыру және біркелкі жүктемені қамтамасыз ету үшін тапсырмаларды кластер түйіндері арасында бөлу. Бұл жекелеген түйіндердің шамадан тыс жүктелуін болдырмауға және жүйенің жалпы өнімділігін арттыруға көмектеседі. HAProxy немесе Nginx сияқты технологиялар жиі осы мақсаттар үшін қолданылады.
-
Деректердің репликациясы (Data Replication): Деректердің түйіндерде істен шыққан жағдайда олардың қол жетімділігін қамтамасыз ету үшін бірнеше түйіндерде қайталануы. Репликация синхронды (деректердің сәйкестігін қамтамасыз етеді, бірақ кідірістерді арттыруы мүмкін) немесе асинхронды (кідірістерді азайтады, бірақ деректердің уақытша сәйкессіздігіне әкелуі мүмкін) болуы мүмкін. Мысалы, MongoDB-де деректердің тұрақтылығын қамтамасыз ету үшін репликация бірнеше репликалар арасында жүзеге асырылады.
-
Автоматты қалпына келтіру (Automatic Recovery): Жүйенің ақау себептерін жойғаннан кейін қалыпты жұмысын автоматты түрде қалпына келтіру қабілеті. Бұл түйіндерді қайта іске қосуды, деректерді қалпына келтіруді және пайдаланушыларды қайта қосуды қамтуы мүмкін. Мысалы, Kubernetes контейнерлер істен шыққан жағдайда оларды автоматты түрде қайта іске қосады.
Апатқа төзімді кластерлер технологиялары
-
Apache Hadoop: Үлкен деректерді бөлінген түрде өңдеу платформасы. Жоғары қол жетімділікті және апатқа төзімділікті қамтамасыз ету үшін HDFS (Hadoop Distributed File System) және MapReduce пайдаланады. HDFS деректерді бірнеше түйіндерде қайталайды, ал MapReduce деректерді өңдеу тапсырмаларын кластерлер бойынша таратуға мүмкіндік береді.
-
Kubernetes: Контейнерлерді оркестрлеу жүйесі, контейнерленген қолданбаларды орнатуды, масштабтауды және басқаруды автоматтандыруды қамтамасыз етеді. Түйіндердің істен шығуында контейнерлерді автоматты түрде қайта бөлу арқылы апатқа төзімділікті қолдайды. Kubernetes-та ReplicaSets және StatefulSets ұғымдары қолданбаларды репликациялау және күйін басқару үшін пайдаланылады.
-
Microsoft SQL Server Always On Availability Groups: SQL Server дерекқорларының жоғары қол жетімділігін және қалпына келуін қамтамасыз ететін технология. Деректердің синхронды және асинхронды репликациясын, резервтік көшірмелерге автоматты түрде ауысуды және серверлер арасында жүктемені теңгеруді қолдайды. Always On FCI (Failover Cluster Instances) сонымен қатар инстанстар деңгейінде жоғары қол жетімділікті қамтамасыз ету үшін пайдаланылады.
-
VMware vSphere High Availability (HA): Хосттар істен шыққан жағдайда виртуалды машиналарды автоматты түрде қалпына келтіруді қамтамасыз ететін виртуализация шешімі. Түйіндердің және виртуалды машиналардың күйін бақылауды, сондай-ақ қол жетімді хосттарда VM-ларды автоматты түрде қайта қосуды қолдайды. vSphere HA жүктемені теңгеру үшін VMware Distributed Resource Scheduler (DRS) бағдарламасымен біріктірілген.
-
Pacemaker: Операциялық жүйе деңгейінде ресурстарды басқаруды және апатқа төзімділікті қамтамасыз ететін ашық бастапқы кодты кластер менеджері. Дерекқор кластерлері, веб-серверлер және басқа да маңызды қолданбалар сияқты кең ауқымды сценарийлерді қолдайды. Pacemaker түйіндер арасында байланыс және кворумды басқару үшін Corosync пайдаланады.
Іске асыру мысалдары
Мысал 1: Веб-қосымшалар үшін апатқа төзімді кластер
Kubernetes пайдаланып, веб-қосымшаларды орналастыру үшін апатқа төзімді кластер жасауға болады.
- Орнату: Қолданба қажетті көшірме санын қамтамасыз ету үшін ReplicaSets басқаратын бірнеше контейнерлерде орналастырылады.
- Жүктемені теңгеру: Контейнерлер арасында трафикті бөлу үшін LoadBalancer қызметін қосу немесе Ingress контроллерін пайдалану.
- Мониторинг: Метрикаларды бақылау үшін Prometheus енгізу және ескертулерді басқару үшін Alertmanager пайдалану.
- Автоматты қалпына келтіру: Ақаулар кезінде контейнерлерді қайта қосу үшін Liveness Probes пайдалану.
Kubernetes үшін YAML код үлгісі
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: web-app
image: my-web-app:latest
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 3
periodSeconds: 3
apiVersion: v1
kind: Service
metadata:
name: web-app-service
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: web-app
Мысал 2: Дерекқорлар үшін апатқа төзімді кластер
Microsoft SQL Server Always On Availability Groups пайдаланып, дерекқорлар үшін апатқа төзімді кластер жасауға болады.
- Деректердің репликациясы: Деректердің сәйкестігін қамтамасыз ету үшін негізгі және екінші реттік түйіндер арасында синхронды деректердің репликациясын орнату.
- Мониторинг: Серверлер мен дерекқордың күйін бақылау үшін System Center Operations Manager (SCOM) пайдалану.
- Автоматты ауыстыру: Негізгі түйін істен шыққан жағдайда резервтік серверге автоматты түрде ауысуды конфигурациялау.
- Жүктемені теңгеру: Оқуға арналған сұрауларды репликалар арасында бөлу үшін Listener пайдалану.
Always On Availability Group орнатуға арналған PowerShell сценарийінің мысалы
# Қажетті айнымалыларды орнату
$primaryServer = "SQLPRIMARY"
$secondaryServer = "SQLSECONDARY"
$agName = "MyAvailabilityGroup"
$listenerName = "MyAGListener"
$listenerPort = 1433
# Екі серверде де Endpoints құру
Invoke-Sqlcmd -ServerInstance $primaryServer -Query "
CREATE ENDPOINT [Hadr_endpoint]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022)
FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM AES)"
Invoke-Sqlcmd -ServerInstance $secondaryServer -Query "
CREATE ENDPOINT [Hadr_endpoint]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022)
FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM AES)"
# Негізгі серверде Availability Group құру және конфигурациялау
Invoke-Sqlcmd -ServerInstance $primaryServer -Query "
CREATE AVAILABILITY GROUP [$agName]
WITH (DB_FAILOVER = ON, CLUSTER_TYPE = WSFC)
FOR DATABASE [MyDatabase]
REPLICA ON N'$primaryServer' WITH
(ENDPOINT_URL = 'TCP://$primaryServer:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC),
N'$secondaryServer' WITH
(ENDPOINT_URL = 'TCP://$secondaryServer:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC);"
# Listener құру және конфигурациялау
Invoke-Sqlcmd -ServerInstance $primaryServer -Query "
ALTER AVAILABILITY GROUP [$agName]
ADD LISTENER N'$listenerName'
(WITH IP ((N'10.0.0.100', N'255.255.255.0')), PORT=$listenerPort);"
Ең жақсы тәжірибелер
- Апатқа төзімділікті жобалау: Барлық жүйе деңгейінде маңызды компоненттердің қайталануын және артықтығын қамтамасыз етуді қамтиды.
- Тұрақты тестілеу: Апатқа төзімділікке арналған тесттерді (мысалы, Chaos Engineering) үнемі өткізу арқылы осалдықтарды анықтау және жүйенің ақауларға дайындығын тексеру.
- Автоматтандыру: Жүйені орнатуды, бақылауды және қалпына келтіруді басқару үшін автоматтандыру құралдарын пайдалану.
- Құжаттама және оқыту: Қазіргі құжаттаманы қолдау және апатқа төзімді жүйелерді пайдалану үшін жауапты персоналды тұрақты түрде оқыту.
- Деректерді көп деңгейлі қорғау: Деректердің тұтастығын қамтамасыз ету үшін резервтік көшіруді, репликацияны және қалпына келтіру стратегияларын пайдалануды қамтиды.
Қорытынды
Апатқа төзімді кластерлер қазіргі заманғы есептеу жүйелерінің жоғары қол жетімділігі мен сенімділігін қамтамасыз етуде маңызды рөл атқарады. Алдыңғы қатарлы технологияларды пайдалану және апатқа төзімділіктің негізгі қағидаларын сақтау әртүрлі ақаулармен тиімді күресе алатын және осы ақаулардың пайдаланушылар мен бизнес процестерге әсерін барынша азайтатын жүйелерді жасауға мүмкіндік береді.
Дегенмен, мұндай жүйелерді енгізу мұқият жоспарлауды, айтарлықтай ресурстарды және арнайы білімді қажет етеді, бұл процесті өте күрделі, бірақ бизнес мақсаттарға қол жеткізу үшін өте маңызды етеді.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау