Chào các kỹ sư mạng,
Nếu bạn đang vật lộn với lỗi "không đủ RAM" (Out of Memory) khi cố gắng nâng cấp switch Catalyst 9300 lên phiên bản Cisco IOS XE mới (ví dụ: từ cat9k_iosxe.16.06.07.SPA.bin lên cat9k_iosxe.17.18.01.SPA.bin), bạn không đơn độc. Vấn đề này gần như luôn xuất phát từ một chế độ khởi động cũ - Bundle Boot Mode.
Tại Sao Bundle Mode Gây Lỗi Thiếu Bộ Nhớ?
Các thiết bị dòng Catalyst 9K hỗ trợ hai chế độ khởi động phần mềm (Software Boot Modes).
1. Bundle Boot Mode: Khi thiết bị khởi động bằng một file bundle duy nhất (file .bin), nó sẽ tiêu thụ bộ nhớ bổ sung tương đương với kích thước của bundle đó. Lý do là các gói phần mềm con phải được trích xuất từ bundle và sao chép vào RAM, dẫn đến việc tiêu thụ bộ nhớ rất cao, đặc biệt khi sử dụng các phiên bản IOS XE mới.
2. Installed Boot Mode: Chế độ được Cisco khuyến nghị sử dụng. Thiết bị khởi động bằng file cấp phép phần mềm (packages.conf). Các gói cài đặt được mount trực tiếp từ flash, giúp tiêu thụ ít bộ nhớ bổ sung hơn đáng kể.
Để nâng cấp phiên bản mới thành công và đảm bảo sự ổn định lâu dài, việc bắt buộc phải làm là chuyển đổi sang Installed Boot Mode.
GIẢI PHÁP - CHUYỂN ĐỔI NHANH CHÓNG BẰNG LỆNH TỔ HỢP
Bạn có thể thực hiện toàn bộ quá trình chuyển đổi, cài đặt image mới, kích hoạt và cam kết chỉ bằng một lệnh duy nhất.
Lệnh này sẽ xử lý việc trích xuất các thành phần từ file .bin mới (ví dụ: cat9k_iosxe.17.18.01.SPA.bin) và tạo ra cấu trúc file cần thiết cho Install Mode.
Lệnh quan trọng (giả sử file image đã nằm trong flash):
Giải thích vắn tắt các tham số:
• install add file: Sao chép và trích xuất file .bin thành các gói con, chuẩn bị cho quá trình cài đặt.
• activate: Kích hoạt các gói mới. Thao tác này sẽ tự động reload (khởi động lại) hệ thống để áp dụng các thay đổi.
• commit: Đảm bảo rằng phiên bản phần mềm mới được áp dụng vĩnh viễn (persistent) qua các lần reload sau.
Sau khi lệnh này hoàn tất và switch reload, nó sẽ tự động khởi động ở Installed Boot Mode với phiên bản IOS XE mới, khắc phục hoàn toàn vấn đề thiếu RAM do Bundle Mode gây ra.
🔑LƯU Ý QUAN TRỌNG VỀ BIẾN KHỞI ĐỘNG (BOOT VARIABLE)
Mặc dù lệnh install add file... activate commit thường tự động đặt biến boot thành flash:packages.conf, giúp switch khởi động ở chế độ Install Mode, nhưng trong một số trường hợp, nếu switch đã từng được cấu hình thủ công hoặc gặp sự cố, biến khởi động (Boot Variable) vẫn có thể bị giữ ở trạng thái cũ (chỉ định đến file .bin).
Điều này có thể dẫn đến các vấn đề sau:
Xác nhận "Proceed with reload? [confirm]" bằng "y".
Kiểm Tra Kết Quả
Để xác nhận quá trình cài đặt đã hoàn tất và chế độ đã được chuyển đổi, hãy sử dụng lệnh sau:
Nếu phiên bản mới hiển thị trạng thái 'C' (Committed), điều đó có nghĩa là bạn đã chuyển đổi thành công sang Install Mode.
📌Kết Luận
Việc chuyển đổi từ Bundle Mode sang Install Mode là một bước chuẩn hóa quan trọng trên các thiết bị Catalyst 9300. Nó không chỉ giải quyết triệt để lỗi "không đủ RAM" khi nâng cấp mà còn giúp hệ thống vận hành với hiệu suất bộ nhớ tối ưu hơn, đảm bảo quá trình nâng cấp lên các phiên bản Cisco IOS XE hiện đại (như 17.18.x) diễn ra mượt mà và ổn định.
Nếu bạn đang vật lộn với lỗi "không đủ RAM" (Out of Memory) khi cố gắng nâng cấp switch Catalyst 9300 lên phiên bản Cisco IOS XE mới (ví dụ: từ cat9k_iosxe.16.06.07.SPA.bin lên cat9k_iosxe.17.18.01.SPA.bin), bạn không đơn độc. Vấn đề này gần như luôn xuất phát từ một chế độ khởi động cũ - Bundle Boot Mode.
Tại Sao Bundle Mode Gây Lỗi Thiếu Bộ Nhớ?
Các thiết bị dòng Catalyst 9K hỗ trợ hai chế độ khởi động phần mềm (Software Boot Modes).
1. Bundle Boot Mode: Khi thiết bị khởi động bằng một file bundle duy nhất (file .bin), nó sẽ tiêu thụ bộ nhớ bổ sung tương đương với kích thước của bundle đó. Lý do là các gói phần mềm con phải được trích xuất từ bundle và sao chép vào RAM, dẫn đến việc tiêu thụ bộ nhớ rất cao, đặc biệt khi sử dụng các phiên bản IOS XE mới.
2. Installed Boot Mode: Chế độ được Cisco khuyến nghị sử dụng. Thiết bị khởi động bằng file cấp phép phần mềm (packages.conf). Các gói cài đặt được mount trực tiếp từ flash, giúp tiêu thụ ít bộ nhớ bổ sung hơn đáng kể.
Để nâng cấp phiên bản mới thành công và đảm bảo sự ổn định lâu dài, việc bắt buộc phải làm là chuyển đổi sang Installed Boot Mode.
GIẢI PHÁP - CHUYỂN ĐỔI NHANH CHÓNG BẰNG LỆNH TỔ HỢP
Bạn có thể thực hiện toàn bộ quá trình chuyển đổi, cài đặt image mới, kích hoạt và cam kết chỉ bằng một lệnh duy nhất.
Lệnh này sẽ xử lý việc trích xuất các thành phần từ file .bin mới (ví dụ: cat9k_iosxe.17.18.01.SPA.bin) và tạo ra cấu trúc file cần thiết cho Install Mode.
Lệnh quan trọng (giả sử file image đã nằm trong flash):
Switch# install add file flash:cat9k_iosxe.17.18.01.SPA.bin activate commit
• install add file: Sao chép và trích xuất file .bin thành các gói con, chuẩn bị cho quá trình cài đặt.
• activate: Kích hoạt các gói mới. Thao tác này sẽ tự động reload (khởi động lại) hệ thống để áp dụng các thay đổi.
• commit: Đảm bảo rằng phiên bản phần mềm mới được áp dụng vĩnh viễn (persistent) qua các lần reload sau.
Sau khi lệnh này hoàn tất và switch reload, nó sẽ tự động khởi động ở Installed Boot Mode với phiên bản IOS XE mới, khắc phục hoàn toàn vấn đề thiếu RAM do Bundle Mode gây ra.
🔑LƯU Ý QUAN TRỌNG VỀ BIẾN KHỞI ĐỘNG (BOOT VARIABLE)
Mặc dù lệnh install add file... activate commit thường tự động đặt biến boot thành flash:packages.conf, giúp switch khởi động ở chế độ Install Mode, nhưng trong một số trường hợp, nếu switch đã từng được cấu hình thủ công hoặc gặp sự cố, biến khởi động (Boot Variable) vẫn có thể bị giữ ở trạng thái cũ (chỉ định đến file .bin).
Điều này có thể dẫn đến các vấn đề sau:
- Nếu switch vẫn cố gắng boot từ file .bin (Bundle Mode) sau khi cài đặt thành công, vấn đề về bộ nhớ (như "out of resource") có thể tái diễn, đặc biệt trên các switch như Catalyst 9300 với dung lượng RAM giới hạn.
- Để đảm bảo switch luôn khởi động ở chế độ Install Mode (sử dụng ít bộ nhớ hơn và tối ưu hiệu suất), bạn cần đặt biến boot thành flash:packages.conf một cách thủ công nếu cần.
Switch> enable Switch# configure terminal
Switch(config)# no boot system
Switch(config)# boot system switch all flash:packages.conf
Switch(config)# end
Switch# write memory
Switch# reload
Switch(config)# no boot system
Switch(config)# boot system switch all flash:packages.conf
Switch(config)# end
Switch# write memory
Switch# reload
Xác nhận "Proceed with reload? [confirm]" bằng "y".
Kiểm Tra Kết Quả
Để xác nhận quá trình cài đặt đã hoàn tất và chế độ đã được chuyển đổi, hãy sử dụng lệnh sau:
Switch# show install summary
📌Kết Luận
Việc chuyển đổi từ Bundle Mode sang Install Mode là một bước chuẩn hóa quan trọng trên các thiết bị Catalyst 9300. Nó không chỉ giải quyết triệt để lỗi "không đủ RAM" khi nâng cấp mà còn giúp hệ thống vận hành với hiệu suất bộ nhớ tối ưu hơn, đảm bảo quá trình nâng cấp lên các phiên bản Cisco IOS XE hiện đại (như 17.18.x) diễn ra mượt mà và ổn định.