예산에 따른 서버 손실을 방지하는 방법


22

저는 자선 단체와 비영리 단체 고객을 위해 웹 사이트와 데이터베이스를 제공하는 예산이 적은 소규모 회사입니다.

데비안 리눅스 VPS 서버가 몇 개 있고 서비스가 호스팅되는 것과 다른 VPS에 매일 백업해야합니다.

최근 호스팅 회사 중 한 곳에서 두 개의 드라이브가 동시에 고장 나서 데이터가 영구적으로 손실되었다고 말했습니다. 물건이 일어나서 미안하다고 말 했어요. 그러나 하드웨어 나 다른 호스트 관련 오류가 발생할 경우 기본적으로 VPS를 다시 올리는 비용 효율적인 방법에 대해 궁금해했습니다.

현재는

  1. 새로운 VPS 스핀 업
  2. 마지막 날의 백업 (데이터베이스, 웹 루트 및 웹 사이트 별 구성 포함)을 VPS로 가져 와서 마지막 것과 같이 구성하십시오.
  3. DNS를 업데이트하고 전파 될 때까지 기다립니다.

TTL이 상당히 낮게 설정되었지만 (시간 정도) DNS 전파가 알려지지 않은 상태에서 하루 정도 걸릴 수 있습니다.

일부 호스트는 새 VPS로 설정을 복제하는 데 사용할 수있는 스냅 샷을 제공하지만 여전히 IP가 있으며 호스트 회사가 계정을 완전히 취소 / 일시 중지하는 경우 도움이되지 않습니다 (이 내용을 읽었습니다) 나는 어떤 스팸 행위를하지 않고 보안에주의를 기울이고 있지만, 문자 그대로 이러한 일을 할 수있는 힘이 있다는 것을 알고 있습니다.

믿을만한 호스트를 선택하는 것과 결합하여 엄청나게 비싼 솔루션을 사용하지 않고 최선을 다할 수 있습니까?


1
2 개의 드라이브, 특히 vps에서 동시에 2 개의 드라이브가 고장
났다

새로운 것이 재건되는 동안 분명히 하나는 실패했다.
artfulrobot

drbd.linbit.com을 살펴 보십시오 . 이것은 귀하의 요구 사항에 맞을 수도 있습니다 ..
유닉스 청소부

2
@symcbean : 문제는 RAID-5 재 구축을 위해 나머지 모든 디스크의 모든 데이터를 읽어야한다는 것입니다. 상당히 긴 작업입니다 (일이 아닌 경우 몇 시간). 저렴한 RAID-5 시스템에는 데스크탑 드라이브를 사용하여 9 + 1 설정이있을 수 있습니다. 이 9 개의 디스크는 모두 RAID 재 구축시 설계 한계를 넘어서게됩니다. 실제로 실패가 예상됩니다.
MSalters

1
실제로 스토리지 풀과 프로세서 + 메모리 풀이 별도의 엔터티로 존재하지만 한 특정 공급자에서 발생하거나 발생하지 않은 문제에 대한 문제는 아닙니다. 특정 구현보다 더 일반적입니다.
artfulrobot 2019

답변:


28

저에게있어 평판이 좋은 호스트를 선택하고 정기적으로 백업하는 것은 이미 진행중인 것처럼 보이지만 비즈니스 연속성 계획, 고 가용성 설정, SLA 등을 생각하지 않고도 할 수 있습니다.

나는 사람들에게 무료로 99 % 가동 시간을 얻는다고 말합니다 (즉, 고 가용성에 추가 비용을 들이지 않고 ). 1 년에 약 3 일 반의 가동 중지 시간입니다. 가동 시간에 9 가 추가 될 때마다 비용이 3-10 배 정도 증가합니다.

사람들이 그런 종류의 돈을 지불 할 준비가되지 않았다면, 그들이 어떤 의미의 추가적인 보호를받을 수 있다고 생각하도록 오도하는 것은 잘못이라고 생각합니다.


3
이것은 좋은 대답입니다. @artfulrobot (우리는 동일한 호스팅 회사를 사용함)과 매우 유사한 설정 및 유형의 클라이언트를 보유하고 있으며, 그의 질문과 답변에 따라 고객에게 제한과 위험을 알리는 것이 내 책임이라는 것을 알게되었습니다. 실제적인 기대치를 갖도록 매우 평범한 영어로. 대부분은 기술이 아니기 때문에 모든 것이 어떻게 든 마술처럼 작동하고 멈추지 않고 광고 무한대로 작동 할 것이라고 생각할 가능성이 매우 높습니다. 나는 중대한 실패 동안 / 후에 그들의 기대를 관리하고 싶지 않다. 나는 그것을 전에해야한다!
Simon Blackbourn

나는 실패가 완전히 상관이 없다고 말하지는 않지만 이론상 1 + 1 중복성은 두 배의 비용으로 두 개의 여분의 9를 제공해야합니다 . 여분의 9 개 9 개 비용이 9 배에서 100 배 사이 인 것이 좋습니다. 2 배 대 ~ 30 배는 큰 차이가 있습니다.
MSalters

2
@MSalters는 특정 종류의 오류 (서버 오류)에 맞습니다. 예를 들어, 사이트 장애에 대하여, 그것은 두 서버가 서로 다른 사이트에서하지 않는 한, 아무것도하지 않으며, 네트워크 관리의 측면에서 매우 복잡한 가져옵니다. 또한 자본 비용 만 고려하고 증가 된 운영 비용을 간과하십시오. 두 서버를 완벽하게 동기화하는 것은 어떤 종류의 작업에 따라 간단하지 않으며로드 밸런서의 관리 비용이 있습니다. 제 생각에는 LB로드를 공유하는 단일 사이트의 중복 서버가 3-4 배의 비용으로 9 개의 다른 서버를 제공한다는 것입니다.
MadHatter는 Monica를 지원합니다. Monica

그것을 제시하는 좋고 쉬운 방법. (그러나 ... "무료"의 3-10 배는 여전히 무료이므로 어딘가에 가격을 추가하고 싶습니다.). 아니면 서비스 자체의 전체 비용을 의미합니까? )
Olivier Dulac

@OlivierDulac 정확하게 그렇게!
MadHatter는 Monica를 지원합니다.

8

예산이 적은 소기업, 특히 비영리 단체는 일반적으로 고 가용성을 감당할 수 없습니다. 문제는 실제로 예산이 없다면 이와 같은 상황에서 일반적으로 그러 하듯이 복원 전략은 무엇입니까?

나는 이와 같은 클라이언트를 가지고 있으며 이것이 내가하는 일입니다.

먼저, 그중 일부에 대해 6 시간마다 증분 백업 및 전체 데이터베이스 덤프가 있습니다. 한 고객은 이미 CrashPlan Pro를 사용하고 있었으므로 방금 사용했습니다. 무엇을 하든지 복구 가능한 백업이 있는지 확인해야합니다.

nginx, php-fpm 및 MariaDB를 설치하고 웹 사이트 또는 사이트를 호스팅 할 수 있도록 준비하는 약 1 시간 (이전에는 ansible과 함께 작동하지 않은)으로 정리 한 간단한 ansible playbook이 있습니다. 이 플레이 북을 실행하면 일반적인 웹 응용 프로그램을 호스팅 할 준비가 된 서버가 생성되며 nginx 가상 호스트, 응용 프로그램 파일 및 데이터베이스를 간단히 복원 할 수 있습니다.

그 결과 1 시간 이상 걸릴 수있는 수동 방식이 아니라 몇 분 안에 백업에서 이러한 웹 사이트를 불러올 수 있습니다.


그 소리가납니다. 내가 살펴볼 게 감사.
artfulrobot 2019

우수한 제공 업체의 소규모 클라이언트도 고 가용성을 쉽게 사용할 수 있습니다. 그들은 규모의 경제를 얻습니다.
JamesRyan

@JamesRyan 네,하지만 당신은 경제의 경제를 얻지 못합니다. 한 달에 300 번의 조회가 발생하는 웹 사이트에 대해 두 개의 Amazon 인스턴스와 탄력적로드 밸런서를 실행하는 것이 합리적입니까?
Michael Hampton

@MichaelHampton은 원격으로 제안한 것이 아닙니다. 수백 명의 클라이언트를 위해 VPS를 호스팅하는 회사는 단일 물리적 서버에 여러 대의 서버를 배치하고 손가락을 넘기지 않고 중복 하드웨어에 분산시킬 수 있습니다.
JamesRyan

4

구현의 복잡성은 응용 프로그램 스택에 따라 다르지만 데이터를 가능한 한 실시간으로 (또는 실시간에 가깝게) 복제하여 "다른 대기"에서 "핫 대기"를 설정하는 것이 이상적입니다.

"라이브"서버 2 대를 사용하는 비즈니스 사례를 만드는 것은 "이미지 복구"기간 동안 잠재적 인 수익 손실을 다른 서버 비용과 비교하는 것만 큼 간단합니다.


감사. 램프 스택을 사용하고 있습니다. 실시간은 MySQL 복제와 같은 것으로 생각되지만 관리하기가 까다로울 수 있습니다. 그리고 그것은 내가 관리 해야하는 서버를 두 배로 늘립니다. 어쩌면 다른 모든 서버의 라이브 사본을 가진 하나의 낮은 사양 상자를 갖는 것이 합리적 일 수 있으므로 DNS 전파 일뿐입니다. 그런 다음이를 새로운 VPS로 복제하고 DNS (hmmm.)를 변경할 수 있습니다.
artfulrobot 2019

MySQL 복제는 일반적으로 초기 데이터 세트를 전송하는 데 걸리는 시간 외에는 설정 및 구성이 매우 간단합니다. DNS의 경우 대부분의 리졸버는 요즘 낮은 ​​TTL을 존중하며 레코드의 TTL을 60 초로 낮게 설정하면 일반적으로 효과적입니다.
Mark R.

MySQL 복제는 새로운 여분의 데이터베이스를 추가해야 할 때 더 복잡하며 하나 이상의 서버가 하나 이상의 마스터에 대한 슬레이브가되는 것이 여전히 까다 롭다고 생각합니다 (하나의 대기 서버에 여러 개의 데이터베이스 복제). 물론 서버 (예 : stunnel) 사이의 액세스를 보호해야하므로 사설 LAN이없는 한 유지 관리하는 PKI 등이지만 별도의 호스팅 회사와 함께해야 할 필요가 없습니다.
artfulrobot

항상 키가있는 replicate-do-db 및 SSH 터널이 있습니다.
Mark R.

표준 SSH 터널을 실행하는 데 사용되었지만 신뢰할 수 없습니다. Stunnel은 일단 설치하고 실행하면 훌륭합니다.
artfulrobot 2013

2

가동 시간은 데이터 무결성과 다릅니다. 서버가 "곧"다시 시작되는 한, 가동 시간은 99.99 %이며 1 년에 두 번 모든 데이터를 잃어 버릴 수 있습니다. 대부분의 VPS 제공 업체는 데이터가 안전하지 않고 서버가 실행되고 있음을 보장합니다. 귀하의 데이터는 귀하의 문제입니다 :(.

당신이 찾고있는 것은 백업을 별도의 서버에 저장하고 (IMHO) 동일한 공급자에게도 저장하지 않는 것입니다. 이야기하는 데이터 크기에 따라 휴대용 하드 드라이브를 세 번째 오프라인 방어선으로 사용할 수 있습니다. 데이터를 백업 한 후 정기적으로 휴대용 하드 드라이브 나 로컬 컴퓨터에 복사하십시오 (가능한 경우 변경 사항 만). 백업 솔루션을위한 Backblaze와 같은 저렴한 옵션도 있지만 가격은 말하는 데이터의 양에 따라 다릅니다. 증분 백업을 수행 할 수있는 경우 전체 백업보다 훨씬 저렴하지만 데이터가 저장된 위치에 따라 증분 백업이 매우 어려울 수 있습니다 (플랫 파일 = 쉬움, 데이터베이스 = 쉽지 않음).


그래, 난 그렇게 :-) 그리고 그래, 호스팅 회사는 데이터에 신경 쓰지 않는다, 나는 전에도 디스크 손상을 처리했습니다!
artfulrobot

0

대답은 전적으로 아키텍처와 요구 사항에 따라 다릅니다. 얼마 전 내 서버에서 3 개의 디스크가 고장 나서 Raid 6이 고장 났을 때 20 개 이상의 vm을 줄였습니다.

나는 그것에 대해 썼다

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

그러나 이것이 중요하기 때문에 중요하지 않은 작업은 매일 백업하고 데이터베이스 및 전자 메일은 15 분 동안 백업했습니다. 이제 30 초마다 다른 컴퓨터에 복제되는 서버를 추가했습니다.

스택에 대해, 예산에 대해 아무 것도 말하지 마십시오. 여기서 가장 좋은 유일한 조언은 일부 클라우드 공급자에게 가서 백업 메커니즘을 사용하는 것입니다. 그러나 실제로 필요한 것을 정의하십시오.

또한이 백업의 예산은 가격에 있어야합니다. 지불해야합니다. 필요한 인프라는 무엇이든 필요합니다. 그것은 "엄청나게 비싸지"않다.


탐 탐 : AOE + Openfiler의 및 상자 몇 당신은 매우 높은 가용성을 구축 할 수 있습니다 마이크로 산
symcbean
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.