Thiết lập cho môi trường ảo hóa có tính sẵn sàng cao


9

Đối với một dự án, tôi có nhiệm vụ lập kế hoạch thiết lập tính sẵn sàng cao cho một cửa hàng web và hệ thống CMS. Tuy nhiên, tất nhiên dự án là trên một ngân sách eo hẹp. Vì vậy, một giải pháp cao cấp có thể không có trong ngân sách.

Sẽ có hai máy chạy máy chủ web (CMS, cửa hàng), một máy chạy cơ sở dữ liệu và một máy để chạy máy chủ fax cần thiết để gửi đơn đặt hàng cho đối tác. Tất cả các hệ thống chạy Linux. Tất cả các thành phần này cần phải có tính sẵn sàng cao và sẽ hỗ trợ cho sự thất bại trong suốt.

Để giảm chi phí phần cứng, tôi nghĩ về một môi trường ảo hóa. Có rất nhiều thông tin ngoài kia, nhưng tôi không biết chính xác là bắt đầu. Rõ ràng là ít nhất các máy chủ là cần thiết cho máy chủ ảo, do đó không có điểm thất bại duy nhất.

Đó là cách tốt nhất để hỗ trợ tính sẵn sàng cao?

Câu hỏi đầu tiên là giải pháp ảo hóa nào là tốt nhất trong tình huống này. Cần phải có một số loại giao diện quản lý. Cần phải có một cách để di chuyển một máy ảo đang chạy từ máy chủ này sang máy chủ khác, vì vậy việc bảo trì máy chủ có thể được thực hiện. Cần phải có một số loại cơ chế, để các máy ảo vẫn có sẵn nếu một máy chủ bị lỗi. Bạn có thể tư vấn về một giải pháp hợp lệ ở đây?

Lưu trữ tệp được chia sẻ dường như là điều kiện tiên quyết có tính sẵn sàng cao trong hầu hết các trường hợp (mong đợi VMware vSphere khá đắt). Tuy nhiên, thà bỏ nhiều tiền hơn vào các máy chủ ảo hơn là thêm hai máy chủ khác vào thiết lập để cung cấp kho lưu trữ tệp NFS dự phòng. Có khả năng hòa hợp với chỉ hai máy chủ ảo không? Một giải pháp có thể là hai sử dụng hai cái này làm máy chủ NFS. Có nhiều hình phạt hiệu suất để làm điều này?

EDIT: Tôi nhắm đến khả năng sẵn sàng 99,9%. Tuy nhiên, không có sẵn 24/7 là cần thiết vì có giờ làm việc thường xuyên, điều này mang lại một số không gian để điều động. Thời gian có sẵn mà theo một cách nào đó là bảo đảm là từ 10 giờ sáng đến nửa đêm.


2
Làm thế nào "cao" là "tính sẵn sàng cao"? Bạn đang chụp cho sẵn sàng 1 đến 9 hoặc 6 chín, hoặc một nơi nào đó ở giữa? Cho đến khi bạn có những yêu cầu cụ thể, không thể nói liệu những gì bạn muốn làm có thể đạt được với một ngân sách nhất định hay không.
gầm gừ

Có bạn đúng. Tôi nhắm đến sự sẵn có 99,9%.
spa

"99,9%" không chỉ là cụm từ chúng tôi đưa ra. Nó tương đương với khoảng 8,8 giờ ngừng hoạt động một năm . Điều đó đưa bạn ra khỏi một loạt các hệ thống được kết hợp với ngân sách eo hẹp. Nếu ngân sách của bạn có hạn, bạn có đủ khả năng để hỗ trợ mức độ sẵn có đó không?
Rob Moir

1
@RobMoir - Tôi lập luận rằng nếu bạn đáp ứng các tiêu chí mà tôi đã nêu trong câu trả lời của mình, sẽ không có nhiều vấn đề bạn không thể khắc phục trong 8 giờ đó (và ngân sách vẫn có thể nhỏ). Nếu bạn chắc chắn rằng cảnh báo nâng cao, hết giờ, thời gian chết theo lịch trình sẽ không được tính vào SLA của bạn (đối với phần mềm không phải là 24/7).
Mark Henderson

@MarkHenderson Tôi biết bạn nói đúng, tôi chỉ nói rằng quy trình đòi hỏi một số suy nghĩ và lập kế hoạch và sẽ không "xảy ra" (bạn cần đảm bảo rằng bạn có thể nhận được phụ tùng thay thế trên trang web trong vòng 8 giờ, trong ví dụ, vì vậy bạn không muốn mất 7 giờ 'cửa sổ' cho bưu điện hoặc tìm nhà cung cấp yêu thích của mình đã chọn ngày đó hết hàng trên một số cáp tầm thường mà họ thường có trong kho hàng nghìn) .
Rob Moir

Câu trả lời:


13

Như một tổng quan chung, để đạt được Tính sẵn sàng cao, bạn cần:

  1. Nhiều máy chủ
  2. Nhiều bản sao nhất quán của dữ liệu
  3. Dữ liệu nhất quán có thể được truy cập giữa nhiều máy chủ
  4. Cách tự động khởi động phiên bản thứ 2 trên máy chủ dự phòng

Số 1 đơn giản như âm thanh của nó - mua hai máy chủ giống hệt nhau.

Số 2 có thể đạt được bằng cách sao chép SAN (đắt tiền, rất nhanh, rất đáng tin cậy) hoặc hệ thống tệp được sao chép trên mỗi máy chủ (giá rẻ, tốc độ và độ tin cậy có thể phụ thuộc vào kiến ​​thức của bạn về công nghệ đã chọn).

Số 3 có thể đạt được bằng SAN (một LUN lưu trữ, được truy cập bởi hai máy chủ) hoặc hệ thống tệp được sao chép (hai vùng lưu trữ riêng biệt, mỗi máy chủ chỉ có thể nhìn thấy riêng).

Số 4 có thể đạt được bằng một ứng dụng nhịp tim.

Để thực hiện điều này với ngân sách nhỏ, giả sử VMWare vSphere, bạn có thể sử dụng SAN hoặc VMWare hiện cung cấp một thiết bị lưu trữ tự sao chép cung cấp hai kho lưu trữ dữ liệu riêng biệt trên hai máy chủ có thể được sử dụng với tính sẵn sàng cao. vSphere cũng cung cấp nhịp tim tích hợp và cấu hình sẵn sàng cao.

Để thực hiện việc này mà không có ngân sách, bạn có thể đi xuống đường dẫn Xen và sử dụng DRBD để sao chép bộ nhớ giữa hai nút. Sau đó, bạn thiết lập nhịp tim để chuyển nút lưu trữ DRBD đang hoạt động và đối tượng Xen để khởi động máy ảo trên máy chủ thứ 2 khi lần đầu tiên ngừng hoạt động.

Bạn sẽ không nhận được thời gian hoạt động 5-9 (99.999%) khi sử dụng các đề xuất cơ bản này, nhưng bạn có thể dễ dàng nhận được 3 số tiền (99,9%) bằng cách sử dụng các phương pháp rẻ nhất nếu bạn biết bạn đang làm gì.


9

Bạn nói về "chi phí" theo nghĩa "chi phí này sẽ mua bao nhiêu tiền" khi thảo luận về lưu trữ được chia sẻ. Đó là một điểm hoàn toàn hợp lệ tất nhiên, tiền bạc ở khắp mọi nơi .

Nhưng nếu bạn đang nói về Tính sẵn sàng cao thì bạn cũng cần phải hỏi " tại sao chúng ta muốn có tính sẵn sàng cao?" và nếu câu trả lời là, chẳng hạn, "vì doanh nghiệp chuyển hơn 2000 đô la mỗi giờ trong bán hàng trực tuyến, vì vậy nếu chúng tôi nghỉ một giờ thì chúng tôi đã mất 2000 đô la" thì câu hỏi về chi phí và khả năng chi trả có thể trở thành "Chúng ta có thể đủ khả năng để không mua thứ gì đó cho phép hoặc cải thiện đáng kể việc triển khai tính sẵn sàng cao của chúng tôi? "

Đây là một chi tiết quan trọng và nó phù hợp với nhận xét của bạn về ngân sách - 'đuôi' CNTT không được vẫy gọi 'con chó' của doanh nghiệp bằng cách nhấn mạnh vào một giải pháp quá phức tạp và tốn kém cho một vấn đề nhỏ, nhưng đồng thời nếu doanh nghiệp có Các yêu cầu nhất định về cơ sở hạ tầng CNTT của nó sau đó phải được chuẩn bị ngân sách cho chúng đúng cách hoặc điều chỉnh các yêu cầu của nó.

Tôi nghĩ ảo hóa có rất nhiều tiềm năng trong việc cải thiện tính khả dụng của các hệ thống, nhưng nó không phải là cây đũa thần. Phần cứng của mọi thứ, trong khi quan trọng, rất nhiều thứ yếu so với các yêu cầu phần mềm - không có cụm cơ sở dữ liệu SQL nào gặp sự cố trong trường hợp một trong các máy chủ SQL gặp sự cố nếu ứng dụng giao diện người dùng nói chuyện đến cuộn cảm cơ sở dữ liệu vì nó không thể xử lý chuyển đổi dự phòng.

Và hai máy chủ "khả dụng cao" ngồi cạnh nhau trong một trung tâm dữ liệu vẫn dễ bị mất điện, mất cắp, v.v. Một lần nữa, tùy thuộc vào câu trả lời cho " tại sao chúng ta làm việc này?", Bạn có thể cần xem xét khía cạnh này khá rõ cẩn thận vì nó có thể thêm chi phí và độ phức tạp cho khá nhiều phần trong dự án của bạn.


3
...no good having a SQL database cluster that falls over with no trouble in the event of one of the SQL servers crashing if the front-end application that talks to the database chokes because it can't handle the failover.- Tôi không thể nhấn mạnh điều này đủ. Chúng tôi đã có một khách hàng đã cho chúng tôi triển khai cụm HA SQL Server trên một SAN lớn và vào cuối ngày, phần mềm của họ phải được khởi động lại trong trường hợp chuyển đổi dự phòng vì không thể xử lý sự cố truyền thông. Đó là một bài tập đắt tiền vô ích khi SQL Mirror và NLB sẽ có hiệu lực.
Mark Henderson

Có vẻ như cả hai chúng ta đều có những vết sẹo tương tự từ các dự án cũ
Rob Moir

@MarkHenderson tại sao giao tiếp bị hỏng (btw cái nào - SAN hoặc mạng)?
Nils

5

Không biết DB và máy chủ ứng dụng nào bạn sử dụng, tôi muốn giới thiệu:

  • Sử dụng XEN> 3.2 trong chế độ PV cho máy ảo (chỉ yêu thích cá nhân của tôi) - các ngăn hoặc các giải pháp virutal hóa ánh sáng khác cũng có thể phù hợp (OpenVZ để đặt tên cho một).
  • Xây dựng bốn máy VM trên mỗi nút vật lý
  • Sử dụng RAID 5 cục bộ với các đĩa SAS 3,5 "- càng nhiều đĩa càng tốt (5 là tốt)
  • Sử dụng đĩa 15 triệu RPM (DB của bạn sẽ cần nó)
  • Sử dụng DRBD và OCFS2 để cung cấp lưu trữ "chia sẻ" giá rẻ, sử dụng mạng cục bộ nhanh, an toàn, đáng tin cậy cho kết nối này (liên kết trực tiếp kết nối khá nhanh và tốt).
  • Làm HA ở cấp ứng dụng
  • Sử dụng cân bằng tải giữa các cặp máy, do đó bạn có 8 máy thực hiện các nhiệm vụ đồng thời

Ví dụ HA:

  • Máy chủ ứng dụng: Sử dụng Tomcat ở chế độ hoạt động / hoạt động theo cụm
  • LVS: Sử dụng đồng thời nô lệ và bản sao chính của lvs
  • Oracle-DB: Sử dụng RAC (Tôi không biết nếu có giải pháp tương đương cho DB OpenSource)

Nếu bạn làm HA trên lớp ứng dụng thì lớp đó biết cách tốt nhất để sao chép các phiên. Nếu một nút bị hỏng (có kế hoạch hoặc không có kế hoạch), nút còn sống sẽ tiếp quản - bao gồm các phiên.


"Oracle-DB: Sử dụng RAC" - Phiên bản tiêu chuẩn không được cấp phép hoặc hỗ trợ với OCFS2. Ngoài ra, một câu trả lời rất nhiều thông tin.
kubanchot

@kubanchot Oracle-RAC nhiều hơn ocfs2. Nhưng ocfs2 là miễn phí. Vì vậy, bạn có thể sử dụng nó bất cứ khi nào bạn muốn.
Nils

2

Tại sao bạn muốn mua máy chủ của riêng bạn? Tại sao bạn không tìm thấy nhà cung cấp Enterprise Cloud / IaaS như BlueLock hoặc Terremark sẽ cung cấp cơ sở hạ tầng bạn cần. Họ sẽ cung cấp các dịch vụ như vSphere HA (giống như giảm thời gian chết hơn dịch vụ HA nhưng đó là giải pháp hiệu quả về chi phí), Tường lửa, Bộ giảm tải LTM / SSL, SAN (có kệ dự phòng), Giám sát / Cảnh báo, v.v ... Lưu ý rằng chúng tôi không nói về các giải pháp đám mây tiêu dùng ở đây vì vậy hãy chuẩn bị để trả giá trị.


Có bạn đúng. Tuy nhiên, thiết lập bao gồm phần cứng tùy chỉnh để gửi fax. Vì vậy, một giải pháp đám mây sẽ không làm buồn.
spa

@spa, bạn vẫn có thể cung cấp phần cứng tùy chỉnh trên môi trường vật lý của họ, phần còn lại trên ảo và kết nối các Vlan.
HTTP500

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.