Làm cách nào để nâng cấp kernel của máy chủ mà không cần khởi động lại?


29

Đây là một câu hỏi được tải bởi vì tôi đã biết và rất quan tâm đến ksplice . Vấn đề là kể từ khi được Oracle mua, họ đã buộc phải rút nhiều bản phân phối máy chủ khỏi các dịch vụ. Câu trả lời không đơn giản như trước đây.

Tôi nhận thấy một câu hỏi trên Unix.SE nói rằng:

Bạn có thể xây dựng các bản vá ksplice của riêng mình để tự động tải vào kernel của riêng bạn

Tuyệt quá! Nhưng bằng cách nào?!

Tôi đã cài đặt ksplicegói miễn phí trong repo trên máy tính để bàn của mình (không phải ksplice-uptracklà miễn phí) và bây giờ muốn tạo và áp dụng các bản cập nhật. Quá trình là gì? Có bất kỳ kịch bản ra khỏi đó để tự động hóa quá trình?

Hơn nữa, nếu tất cả các máy móc cần thiết để nâng cấp không cần khởi động lại nằm trong kernel (và ksplicegói), tại sao chúng ta không tận dụng nó theo mặc định?


Khá gần đây kGraft đã được công bố . Nó dường như là kết quả gần giống nhau, vì vậy nếu bạn có câu trả lời liên quan đến nó, tôi sẽ rất vui với điều đó. Hiện tại nó đã được phát hành vài tháng.


Lưu ý 1: Tôi rất vui vì một giải pháp bên cạnh ksplice nhưng nó phải cung cấp một điều tương tự: cuộn các bản cập nhật cho kernel có thể được áp dụng mà không cần khởi động lại máy chủ.

Lưu ý 2: Tôi sẽ nói lại lần nữa; "dịch vụ" ksplice chính không hỗ trợ Ubuntu Server. Nó đã từng nhưng nó không còn nữa. Khi tôi nói về việc muốn sử dụng ksplice, tôi đang nói về các công cụ nguồn mở trong ksplicegói. Bất kỳ câu trả lời nào nói về ksplice-uptrackcó lẽ không phải là những gì tôi theo đuổi vì đây là phần tích hợp trực tiếp với "dịch vụ" đã nói ở trên.

Câu trả lời:



6

Tôi không biết nhiều về ksplice nhưng nghĩ rằng tôi đã đề cập đến nó - bạn đã nghe nói về kexecchưa? Đây có thể là những gì bạn cần.

Liên quan đến câu hỏi tại sao chúng tôi không chấp nhận điều này như một cơ chế mặc định? Chà, ghi đè lên bộ nhớ của kernel hiện tại trong khi nó vẫn đang chạy có thể gây ra các vấn đề tiềm ẩn. Nó cũng hy vọng các thiết bị phần cứng sẽ ở trạng thái được xác định rõ, điều này không phải lúc nào cũng có thể.

Bạn có thể xem bài viết của nhà phát triển IBM về nó để quyết định xem nó có phù hợp với nhu cầu của bạn không.


5
+1 cho kexec, nhưng thực chất đó là một khởi động lại nóng - IE hạt nhân được tải lại từ đầu, vì vậy các tập lệnh init, v.v. vẫn được gọi. Về mặt kỹ thuật, đây không phải là khởi động lại, nhưng các dịch vụ đang chạy sẽ dừng lại.
jackweirdy

Vâng, tôi biết điều đó nhưng tôi chưa đọc bất cứ điều gì trên ksplice để tìm hiểu sự khác biệt của nó.
Marcin Kaminski

1
Theo en.wikipedia.org/wiki/Ksplice , kspliceáp dụng một bản vá khác biệt nhị phân cho kernel đang chạy trong khi nó vẫn còn trong bộ nhớ
jackweirdy

2
Tôi sẽ cần đọc thêm một chút về điều này vì nó thú vị. Vì vậy, bạn đang cố gắng tiết kiệm bao nhiêu thời gian để không bị thiết lập lại? : D
Marcin Kaminski

3

ksplice sẽ cho phép hoán đổi kernel mà không cần khởi động lại. Uptrack hoạt động trong ksplice và có tệp cấu hình có thể chỉnh sửa trong /etc/uptrack/uptrack.conf


2

Có một vài lựa chọn thay thế nguồn mở hoàn toàn cho Ksplice, cả hai đã được gửi để đưa vào nhân Linux chính tuyến. Vẫn còn quá sớm để biết cái nào sẽ kết thúc trong kernel, nhưng bạn vẫn có thể dùng thử nếu bạn đủ can đảm:

Bạn có thể đọc thêm về cả hai ở đây: SUSE Bài viết kGraft, Red Hat Bài viết Bản vá Kpatch


1

Wiki Arch Linux đã có hướng dẫn: https://wiki.archlinux.org/index.php/ksplice

Phần duy nhất có vẻ là distro cụ thể là cách cài đặt ksplice. Vì bạn đã nhận ra rằng có vẻ như vậy, tôi nghĩ rằng điều này sẽ đưa bạn đến với bạn.


1
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Eric Carvalho

0

Kể từ ngày 16 tháng 7 năm 2015 "Oracle Ksplice được cung cấp miễn phí trên Fedora và Ubuntu Desktop Editions.", Chính thức.

Chỉ cần cài đặt tệp .deb đã tải xuống, bạn có thể nhận được ở đây .

Nếu bạn cố gắng thì sudo dpkg -i ksplice-uptrack.debbạn có thể phải sửa phụ thuộc sudo apt-get install -f.

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.