Tinh vân mở. Ghi chú ngắn

Tinh vân mở. Ghi chú ngắn

Chào mọi người. Bài viết này được viết cho những người vẫn còn đang phân vân giữa việc lựa chọn nền tảng ảo hóa và sau khi đọc bài viết trong loạt bài “Chúng tôi đã cài đặt proxmox và nói chung mọi thứ đều ổn, 6 năm hoạt động không ngừng nghỉ”. Nhưng sau khi cài đặt giải pháp này hoặc giải pháp sẵn dùng khác, câu hỏi đặt ra: làm cách nào tôi có thể sửa lỗi này ở đây để việc giám sát dễ hiểu hơn và ở đây là kiểm soát các bản sao lưu…. Và rồi thời điểm đó đến và bạn nhận ra rằng bạn muốn thứ gì đó có nhiều chức năng hơn hoặc bạn muốn mọi thứ bên trong hệ thống của mình trở nên rõ ràng chứ không phải hộp đen này, hoặc bạn muốn sử dụng thứ gì đó hơn là một bộ ảo hóa và một loạt máy ảo. Bài viết này sẽ chứa đựng một số suy nghĩ và thực tiễn dựa trên nền tảng Opennebula - Tôi chọn nó vì. nó không đòi hỏi nhiều tài nguyên và kiến ​​trúc không quá phức tạp.

Và vì vậy, như chúng ta thấy, nhiều nhà cung cấp đám mây hoạt động trên kvm và tạo kết nối bên ngoài để điều khiển máy. Rõ ràng là các nhà cung cấp dịch vụ lưu trữ lớn viết khuôn khổ riêng cho cơ sở hạ tầng đám mây, ví dụ như YANDEX. Ai đó sử dụng openstack và tạo kết nối trên cơ sở này - SELECTEL, MAIL.RU. Nhưng nếu bạn có phần cứng của riêng mình và một đội ngũ chuyên gia nhỏ, thì bạn thường chọn thứ gì đó làm sẵn - VMware, HYPER-V, có giấy phép miễn phí và trả phí, nhưng đó không phải là điều chúng ta đang nói đến bây giờ. Hãy nói về những người đam mê - đây là những người không ngại cung cấp và thử một cái gì đó mới, mặc dù thực tế là công ty đã nói rõ rằng, “Ai sẽ phục vụ việc này sau bạn”, “Liệu chúng ta có đưa nó vào sản xuất sau không?” ? Đáng sợ." Nhưng trước tiên bạn có thể áp dụng các giải pháp này trong thử nghiệm và nếu mọi người thích nó, thì bạn có thể đặt ra câu hỏi về việc phát triển và sử dụng thêm trong các môi trường nghiêm túc hơn.

Ngoài ra đây là một liên kết đến báo cáo www.youtube.com/watch?v=47Mht_uoX3A từ một người tham gia tích cực vào việc phát triển nền tảng này.

Có lẽ trong bài viết này một điều gì đó sẽ thừa và dễ hiểu đối với một chuyên gia có kinh nghiệm, và trong một số trường hợp, tôi sẽ không mô tả mọi thứ vì các lệnh và mô tả tương tự đều có sẵn trên Internet. Đây chỉ là kinh nghiệm của tôi với nền tảng này. Tôi hy vọng những người tham gia tích cực sẽ bổ sung nhận xét về những gì có thể làm tốt hơn và những sai lầm mà tôi đã mắc phải. Tất cả các hành động diễn ra trong một khán đài gia đình gồm 3 PC với các đặc điểm khác nhau. Ngoài ra, tôi cũng không chỉ rõ cụ thể cách thức hoạt động của phần mềm này và cách cài đặt nó. Không, chỉ có kinh nghiệm quản trị và những vấn đề tôi gặp phải. Có lẽ điều này sẽ hữu ích cho ai đó trong sự lựa chọn của họ.

Vậy hãy bắt đầu. Với tư cách là quản trị viên hệ thống, những điểm sau đây rất quan trọng đối với tôi, nếu không có những điểm này thì tôi khó có thể sử dụng giải pháp này.

1. Khả năng lặp lại cài đặt

Có rất nhiều hướng dẫn để cài đặt opennebula, sẽ không có vấn đề gì. Từ phiên bản này sang phiên bản khác, các tính năng mới xuất hiện không phải lúc nào cũng hoạt động khi chuyển từ phiên bản này sang phiên bản khác.

2. Giám sát

Chúng tôi sẽ giám sát chính nút đó, kvm và opennebula. May mắn thay, nó đã sẵn sàng. Có rất nhiều tùy chọn về giám sát máy chủ Linux, cùng một Zabbix hoặc nhà xuất khẩu nút - bất cứ ai thích cái nào hơn - hiện tại tôi định nghĩa nó là các số liệu hệ thống giám sát (nhiệt độ nơi có thể đo được, tính nhất quán của mảng đĩa), thông qua zabbix và đối với các ứng dụng thông qua nhà xuất khẩu Prometheus. Ví dụ: để giám sát kvm, bạn có thể thực hiện dự án github.com/zhangjianweibj/prometheus-libvirt-exporter.git và đặt nó chạy qua systemd, nó hoạt động khá tốt và hiển thị các số liệu kvm, cũng có một bảng điều khiển được tạo sẵn grafana.com/grafana/dashboards/12538.

Ví dụ: đây là tập tin của tôi:

/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target

Và vì vậy chúng tôi có 1 nhà xuất khẩu, chúng tôi cần nhà xuất khẩu thứ hai để giám sát opennebula, tôi đã sử dụng cái này github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Có thể thêm vào bình thường nút_exporter để giám sát hệ thống sau.

Trong tệp node_exporter, chúng tôi thay đổi phần bắt đầu như thế này:

ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector

Tạo một thư mục mkdir -p /var/lib/opennebula_exporter

bash được trình bày ở trên, trước tiên chúng tôi kiểm tra công việc thông qua bảng điều khiển, nếu nó hiển thị những gì chúng tôi cần (nếu nó báo lỗi thì hãy cài đặt xmlstarlet), sao chép nó vào /usr/local/bin/opennebula_exporter.sh

Thêm một tác vụ định kỳ cho mỗi phút:

*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)

Các số liệu bắt đầu xuất hiện, bạn có thể coi chúng như một chuyên gia và xây dựng biểu đồ cũng như đưa ra cảnh báo. Trong Grafana, bạn có thể vẽ một bảng điều khiển đơn giản như vậy chẳng hạn.

Tinh vân mở. Ghi chú ngắn

(rõ ràng ở đây mình overcommit cpu, ram)

Dành cho những ai yêu thích và sử dụng Zabbix thì có github.com/OpenNebula/addon-zabbix

Về phần giám sát, điều quan trọng nhất là nó ở đó. Tất nhiên, ngoài ra, bạn có thể sử dụng các công cụ giám sát máy ảo tích hợp sẵn và tải dữ liệu lên thanh toán, ở đây mọi người đều có tầm nhìn riêng của mình, tôi vẫn chưa bắt đầu nghiên cứu kỹ hơn về vấn đề này.

Tôi chưa thực sự bắt đầu đăng nhập. Tùy chọn đơn giản nhất là thêm td-agent để phân tích thư mục /var/lib/one bằng các biểu thức thông thường. Ví dụ: tệp sunstone.log khớp với nginx regrec và các tệp khác hiển thị lịch sử truy cập vào nền tảng - lợi thế của việc này là gì? Ví dụ: chúng tôi có thể theo dõi rõ ràng số lượng "Lỗi, lỗi" và nhanh chóng theo dõi vị trí và mức độ trục trặc.

3. Sao lưu

Ngoài ra còn có các dự án đã hoàn thành được trả tiền - ví dụ: tháng XNUMX wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:OpenNebula_Backup. Ở đây chúng ta phải hiểu rằng việc chỉ sao lưu hình ảnh máy hoàn toàn không giống nhau trong trường hợp này, vì máy ảo của chúng ta phải hoạt động với sự tích hợp đầy đủ (cùng một tệp ngữ cảnh mô tả cài đặt mạng, tên vm và cài đặt tùy chỉnh cho ứng dụng của bạn) . Do đó, ở đây chúng tôi quyết định những gì và làm thế nào chúng tôi sẽ sao lưu. Trong một số trường hợp, tốt hơn là tạo bản sao của những gì có trong vm. Và có lẽ bạn chỉ cần sao lưu một đĩa từ một máy nhất định.

Ví dụ: chúng tôi xác định rằng tất cả các máy đều khởi động bằng hình ảnh liên tục, do đó, sau khi đọc docs.opennebula.io/5.12/Operation/vm_management/img_guide.html

Điều này có nghĩa là trước tiên chúng ta có thể tải hình ảnh lên từ vm của mình:

onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

Tôi cũng tìm thấy trên Internet báo cáo thú vị và còn nhiều hơn nữa một dự án mở như vậy, nhưng chỉ có bộ nhớ cho qcow2.

Nhưng như tất cả chúng ta đều biết, sớm hay muộn sẽ đến lúc bạn muốn sao lưu gia tăng, ở đây khó khăn hơn và có lẽ ban quản lý sẽ phân bổ tiền cho một giải pháp trả phí hoặc đi theo hướng khác và hiểu rằng ở đây chúng tôi chỉ đang cắt giảm tài nguyên, và tạo bản sao lưu ở cấp ứng dụng cũng như thêm một số nút và máy ảo mới - vâng, ở đây, tôi đang nói rằng việc sử dụng đám mây hoàn toàn để khởi chạy các cụm ứng dụng và khởi chạy cơ sở dữ liệu trên nền tảng khác hoặc sử dụng một cơ sở dữ liệu có sẵn từ nhà cung cấp, nếu có thể.

4. Dễ sử dụng

Trong đoạn này tôi sẽ mô tả những vấn đề mà tôi gặp phải. Ví dụ, theo hình ảnh, như chúng ta biết, có sự liên tục - khi hình ảnh này được gắn vào vm, tất cả dữ liệu sẽ được ghi vào hình ảnh này. Và nếu không liên tục thì hình ảnh sẽ được sao chép vào bộ lưu trữ và dữ liệu được ghi vào nội dung được sao chép từ hình ảnh nguồn - đây là cách hoạt động của các mẫu mẫu. Tôi đã nhiều lần gây ra sự cố cho bản thân khi quên chỉ định Persistent và hình ảnh 200 GB đã được sao chép, vấn đề là quy trình này chắc chắn không thể hủy được, bạn phải vào nút và hủy tiến trình “cp” hiện tại.

Một trong những nhược điểm quan trọng là bạn không thể hủy các hành động chỉ bằng cách sử dụng gui. Hay nói đúng hơn là bạn sẽ hủy chúng và thấy không có gì xảy ra và bạn sẽ khởi động lại chúng, hủy chúng và thực tế là sẽ có 2 tiến trình cp sao chép hình ảnh.

Và sau đó, bạn sẽ hiểu tại sao opennebula đánh số mỗi phiên bản mới bằng một id mới, ví dụ: trong cùng một proxmox đã tạo một vm với id 101, xóa nó, sau đó bạn tạo lại và id 101. Trong opennebula, điều này sẽ không xảy ra, mỗi phiên bản mới sẽ được tạo bằng một id mới và điều này có logic riêng - ví dụ: xóa dữ liệu cũ hoặc cài đặt không thành công.

Điều tương tự cũng xảy ra với việc lưu trữ; trên hết, nền tảng này hướng tới việc lưu trữ tập trung. Có những tiện ích bổ sung để sử dụng cục bộ, nhưng đó không phải là điều chúng ta đang nói đến trong trường hợp này. Tôi nghĩ rằng trong tương lai sẽ có người viết một bài báo về cách họ quản lý việc sử dụng bộ nhớ cục bộ trên các nút và sử dụng thành công nó trong sản xuất.

5. Đơn giản tối đa

Tất nhiên, bạn càng đi xa thì càng có ít người hiểu bạn hơn.

Trong điều kiện giá đỡ của tôi - 3 nút có bộ lưu trữ nfs - mọi thứ đều hoạt động tốt. Nhưng nếu chúng tôi tiến hành các thử nghiệm liên quan đến mất điện, chẳng hạn như khi chạy ảnh chụp nhanh và tắt nguồn của nút, chúng tôi sẽ lưu cài đặt trong cơ sở dữ liệu rằng có ảnh chụp nhanh, nhưng thực tế là không có ảnh chụp nhanh nào (à, tất cả chúng tôi đều hiểu rằng chúng tôi ban đầu đã viết cơ sở dữ liệu về hành động này bằng sql, nhưng bản thân thao tác đó không thành công). Ưu điểm là khi tạo ảnh chụp nhanh, một tệp riêng biệt sẽ được hình thành và có "cha mẹ", do đó trong trường hợp có sự cố và ngay cả khi nó không hoạt động thông qua gui, chúng ta có thể lấy tệp qcow2 và khôi phục riêng docs.opennebula.io/5.8/Operation/vm_management/vm_instances.html

Thật không may, trên mạng, không phải mọi thứ đều đơn giản như vậy. Chà, ít nhất nó dễ dàng hơn trong openstack, tôi chỉ sử dụng vlan (802.1Q) - nó hoạt động khá tốt, nhưng nếu bạn thay đổi cài đặt từ mạng mẫu, thì những cài đặt này sẽ không được áp dụng cho các máy đã chạy, tức là. bạn cần xóa và thêm card mạng thì cài đặt mới sẽ được áp dụng.

Nếu bạn vẫn muốn so sánh nó với openstack, thì bạn có thể nói thế này: trong opennebula không có định nghĩa rõ ràng về việc sử dụng công nghệ nào để lưu trữ dữ liệu, quản lý mạng, tài nguyên - mỗi quản trị viên tự quyết định xem điều gì thuận tiện hơn cho mình.

6. Các plugin và cài đặt bổ sung

Xét cho cùng, theo như chúng tôi hiểu, nền tảng đám mây không chỉ có thể quản lý kvm mà còn cả vmware esxi. Tiếc là mình chưa có pool với Vcenter, ai đã thử thì viết nhé.

Hỗ trợ cho các nhà cung cấp đám mây khác được nêu docs.opennebula.io/5.12/advanced_comComponents/cloud_bursting/index.html
AWS, AZURE.

Tôi cũng đã cố gắng kết nối Vmware Cloud từ Selectel, nhưng không có gì hiệu quả - nói chung là nó đã bị chặn vì có nhiều yếu tố và không có ích gì khi viết thư gửi bộ phận hỗ trợ kỹ thuật của nhà cung cấp dịch vụ lưu trữ.

Ngoài ra, giờ đây phiên bản mới đã có pháo - đây là sự ra mắt của microvm, một loại khai thác kvm trên docker, mang lại tính linh hoạt, bảo mật cao hơn và tăng năng suất vì không cần lãng phí tài nguyên trên thiết bị mô phỏng. Ưu điểm duy nhất tôi thấy so với Docker là nó không chiếm thêm số lượng quy trình và không có ổ cắm bị chiếm dụng khi sử dụng mô phỏng này, tức là. Bạn hoàn toàn có thể sử dụng nó như một bộ cân bằng tải (nhưng có lẽ đáng để viết một bài riêng về vấn đề này cho đến khi tôi chạy đầy đủ tất cả các thử nghiệm).

7. Trải nghiệm tích cực khi sử dụng và gỡ lỗi

Tôi muốn chia sẻ những quan sát của mình về công việc, tôi đã mô tả một số điều ở trên, tôi muốn viết thêm. Thật vậy, có lẽ tôi không phải là người duy nhất lúc đầu nghĩ rằng đây không phải là hệ thống phù hợp và nói chung mọi thứ ở đây đều là một cái nạng - họ làm việc với hệ thống này như thế nào? Nhưng sau đó người ta hiểu rằng mọi thứ đều khá logic. Tất nhiên, bạn không thể làm hài lòng tất cả mọi người và một số khía cạnh cần phải cải thiện.

Ví dụ: một thao tác đơn giản là sao chép ảnh đĩa từ kho dữ liệu này sang kho dữ liệu khác. Trong trường hợp của tôi, có 2 nút có nfs, tôi gửi hình ảnh - quá trình sao chép xảy ra thông qua opennebula giao diện người dùng, mặc dù tất cả chúng ta đều quen với thực tế là dữ liệu phải được sao chép trực tiếp giữa các máy chủ - trong cùng một vmware, chúng ta là hyper-v đã quen với điều này, nhưng ở đây lại khác. Có một cách tiếp cận khác và một hệ tư tưởng khác, và trong phiên bản 5.12, họ đã loại bỏ nút “di chuyển sang kho dữ liệu” - chỉ bản thân máy được chuyển chứ không phải bộ lưu trữ vì có nghĩa là lưu trữ tập trung.

Tiếp theo là một lỗi phổ biến với nhiều lý do khác nhau: “Lỗi triển khai máy ảo: Không thể tạo miền từ /var/lib/one//datastores/103/10/deployment.5” Dưới đây là lỗi hàng đầu cần xem xét.

  • Quyền hình ảnh cho người dùng oneadmin;
  • Quyền cho người dùng oneadmin chạy libvirtd;
  • Kho dữ liệu có được gắn chính xác không? Hãy đi kiểm tra đường dẫn trên chính nút đó, có thể có thứ gì đó đã rơi ra;
  • Mạng được cấu hình không chính xác, hay đúng hơn là ở giao diện người dùng, trong cài đặt mạng, giao diện chính cho vlan là br0, nhưng trên nút nó được viết là bridge0 - nó phải giống nhau.

Kho dữ liệu hệ thống lưu trữ siêu dữ liệu cho vm của bạn, nếu bạn chạy vm với một hình ảnh liên tục thì vm cần có quyền truy cập vào cấu hình được tạo ban đầu trên bộ lưu trữ nơi bạn đã tạo vm - điều này rất quan trọng. Do đó, khi chuyển vm sang kho dữ liệu khác, bạn cần kiểm tra kỹ mọi thứ.

8. Tài liệu, cộng đồng. Phát triển hơn nữa

Và phần còn lại, tài liệu tốt, cộng đồng và điều chính là dự án tiếp tục tồn tại trong tương lai.

Nhìn chung, mọi thứ đều được ghi lại khá đầy đủ và ngay cả khi sử dụng nguồn chính thức, việc cài đặt và tìm câu trả lời cho các câu hỏi sẽ không thành vấn đề.

Cộng đồng, năng động. Xuất bản nhiều giải pháp làm sẵn mà bạn có thể sử dụng trong quá trình cài đặt của mình.

Hiện tại, một số chính sách trong công ty đã thay đổi kể từ ngày 5.12 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 Sẽ rất thú vị khi xem dự án phát triển như thế nào. Lúc đầu, tôi đã đặc biệt chỉ ra một số nhà cung cấp sử dụng giải pháp của họ và những gì ngành cung cấp. Tất nhiên, không có câu trả lời rõ ràng về việc nên sử dụng cái gì. Nhưng đối với các tổ chức nhỏ hơn, việc duy trì đám mây riêng nhỏ của họ có thể không tốn kém như người ta tưởng. Điều quan trọng là phải biết chính xác những gì bạn cần.

Do đó, bất kể bạn chọn hệ thống đám mây nào, bạn cũng không nên dừng lại ở một sản phẩm. Nếu bạn có thời gian, bạn nên xem xét các giải pháp cởi mở hơn khác.

Có một cuộc trò chuyện tốt t.me/opennebula Họ tích cực giúp đỡ và không cử bạn đi tìm kiếm giải pháp cho vấn đề trên Google. Tham gia với chúng tôi.

Nguồn: www.habr.com

Thêm một lời nhận xét