Raspberry Pi là một bo mạch máy tính mini mà bạn có thể kết nối màn hình, chuột, bàn phím và cài đặt hệ điều hành dựa trên Linux với GUI. Bạn có thể sử dụng nó ở chế độ "không đầu" không có GUI và chạy, ví dụ: máy chủ cơ sở dữ liệu. Một cụm như thế này là một cách tuyệt vời để thử nghiệm với các hệ thống phân tán. Trong bài viết này, tôi sẽ hướng dẫn bạn cách tạo một cụm Raspberry Pi với: 8 nút với 32 lõi, 64 GB RAM và 2TB dung lượng lưu trữ.
Company Mentioned
Raspberry Pi là một bo mạch máy tính mini mà bạn có thể kết nối màn hình, chuột và bàn phím và cài đặt hệ điều hành dựa trên Linux với GUI. Hoặc bạn có thể sử dụng nó ở chế độ "không đầu" không có GUI và chạy, ví dụ: máy chủ cơ sở dữ liệu. Có rất mà bạn có thể cung cấp cho Raspberry Pi — từ xây dựng máy chủ Minecraft đến gương thông minh, khả năng là vô tận.
Kể từ khi tôi bắt đầu khám phá MariaDB và tìm hiểu về các cụm cơ sở dữ liệu, và , ý tưởng xây dựng một cụm Raspberry Pi đã nằm trong đầu tôi. Một cụm như thế này là một cách tuyệt vời để thử nghiệm với các hệ thống phân tán.
Trong bài viết này, tôi sẽ chỉ cho bạn cách tạo một cụm Raspberry Pi với:
8 nút
32 lõi
RAM 64 GB
2TB dung lượng lưu trữ
Những gì bạn cần
Nếu bạn muốn xây dựng cụm của riêng mình, bạn không cần phải mua 8 thiết bị Raspberry Pi. Ngay cả một thiết bị cũng đủ để học mọi thứ. Các hướng dẫn trong bài viết này hữu ích ngay cả khi bạn định cấu hình chỉ một Tuy nhiên, lời khuyên của tôi là phải có ít nhất ba thiết bị để xây dựng cụm của bạn nếu bạn thực sự muốn nâng cao kỹ năng của mình trong quản trị , , , , … bạn đặt tên cho nó!
Với ý nghĩ đó, vui lòng thay thế số 8 bằng bất kỳ số nào của bạn. Thực hiện tương tự với các thông số kỹ thuật của thiết bị Raspberry Pi nếu bạn có các kiểu máy khác nhau với RAM hoặc bộ nhớ ít hơn hoặc nhiều hơn. Đây là những gì tôi đã sử dụng:
8 x (RAM 8 GB)
1 x (10 cổng)
8 x (5A, 40W, 23cm)
8 x (256 GB)
2 x (4 lớp với quạt làm mát)
Điều chỉnh số lượng để thiết lập của bạn. Bạn có thể nhận một hoặc nhiều nếu bạn có rất ít thiết bị (giả sử là 1 hoặc 2) hoặc bộ sạc đa USB. Nếu bạn sử dụng bộ sạc nhiều USB, hãy đảm bảo rằng mỗi cổng có thể cung cấp ít nhất 2,4Am (5V). Chọn thẻ microSD phù hợp với mục tiêu và ngân sách của bạn. Tôi khuyên bạn nên sử dụng thẻ SD ít nhất 32 GB.
Về phía dây cáp và vỏ máy, hãy chọn bất cứ thứ gì phù hợp với thiết lập của bạn. Bạn không nhất thiết phải có quạt làm mát, nhưng tôi khuyên bạn nên sử dụng chúng nếu bạn định để thiết bị của mình bật trong thời gian dài.
Tôi cũng khuyên bạn nên lấy tất cả các nguyên liệu trước khi bắt đầu “nấu ăn”, đặc biệt nếu bạn muốn sử dụng nhiều thiết bị Raspberry Pi.
Cài đặt Raspberry Pi OS (Headless)
Hệ điều hành (OS) chúng tôi sẽ sử dụng là , một hệ điều hành dựa trên Debian được tối ưu hóa cho bo mạch Raspberry Pi. Hệ điều hành Raspberry Pi được cài đặt trên thẻ nhớ microSD bằng máy tính của bạn. Sau đó, bạn kết nối các thẻ microSD này với thiết bị Raspberry Pi của mình và khởi động chúng.
Đặt tất cả các thẻ microSD và hộp Raspberry Pi trên bàn làm việc của bạn. Bạn sẽ cần bộ điều hợp thẻ SD (chúng thường đi kèm với thẻ microSD) hoặc đầu đọc USB thẻ SD nếu máy tính đang làm việc của bạn không có khe cắm thẻ SD. Mang theo cả Sharpie nữa.
Tải xuống ứng dụng và cài đặt nó trên máy tính của bạn. Lấy thẻ nhớ microSD và kết nối nó với máy tính của bạn. Mở ứng dụng Raspberry Pi Imager và nhấp vào CHỌN HĐH . Từ danh sách, nhấp vào Hệ điều hành Raspberry Pi (khác) và chọn Raspberry Pi OS Lite (64-bit) nếu thiết bị Raspberry Pi của bạn là 64-bit hoặc Raspberry Pi OS Lite (32-bit) nếu không:
Nhấp vào CHỌN LƯU TRỮ và chọn thẻ nhớ microSD. Kiểm tra kỹ xem bạn đã chọn đúng ổ đĩa chưa và nhấp vào biểu tượng “bánh răng” (tùy chọn nâng cao). Đối với tên máy chủ, hãy sử dụng rpi01 hoặc một cái gì đó tương tự. Bạn sẽ đặt tên cho các thiết bị là rpi01 , rp02 , rp03 , v.v.
Chọn tùy chọn Bật SSH và Sử dụng xác thực mật khẩu . Đặt tên người dùng (tôi sẽ để số pi mặc định) và đặt mật khẩu an toàn.
Đánh dấu vào tùy chọn Định cấu hình mạng LAN không dây và nhập tên và mật khẩu của kết nối WiFi của bạn. Định cấu hình cài đặt ngôn ngữ của bạn.
Vì chúng ta phải thực hiện việc này một lần với mỗi thẻ microSD, hãy đảm bảo đặt trường Tùy chọn tùy chỉnh hình ảnh thành: để luôn sử dụng . Bằng cách này, các cài đặt sẽ được lưu và quá trình này sẽ dễ dàng hơn cho các thẻ tiếp theo:
Bây giờ, bạn có thể nhấp vào LƯU và sau đó VIẾT để bắt đầu quá trình. Sau khi hoàn tất, hãy đẩy thẻ ra và kết nối nó với một trong các thiết bị Raspberry Pi, đặt nó trở lại hộp và đánh dấu hộp bằng số 01 . Lặp lại quá trình này cho tất cả các thiết bị.
Lắp ráp cụm
Tùy thuộc vào loại trường hợp cụm bạn có, quá trình lắp ráp có thể khác nhau. Làm theo hướng dẫn đi kèm với vỏ máy của bạn hoặc tìm ảnh trực tuyến để biết rõ cách đặt thiết bị trong các lớp.
Tôi khuyên bạn nên nhìn trước để quyết định lắp ráp bộ phận nào trước. Ví dụ: với trường hợp tôi chọn, tôi phải lắp quạt làm mát trước khi gắn thiết bị Raspberry Pi lên các lớp.
Sau khi bạn gắn Raspberry Pi, hãy sử dụng Sharpie để viết số của nó trên lớp. Điều này sẽ giúp bạn trong tương lai nếu bạn phải lấy thẻ nhớ microSD ra để cấu hình lại hoặc bất kỳ tác vụ quản trị nào khác liên quan đến việc chạm vào phần cứng.
Khi bạn đã gắn tất cả các thiết bị, hãy kết nối cáp USB với thiết bị Raspberry Pi và bộ sạc đa USB. Bạn có thể tùy chọn sử dụng và thay vì bộ sạc USB nếu muốn, nhưng tôi sẽ để bạn khám phá; nó chắc chắn đáng để kiểm tra.
Bạn có thể có bộ sạc (hoặc bộ chuyển mạng nếu bạn muốn sử dụng) bên cạnh giá Raspberry Pi hoặc gắn vào nó. Tôi đã sử dụng dây cao su để giữ bộ sạc được gắn vào mặt bên của vỏ máy. Nó hoạt động tốt.
Với cáp USB được cắm vào, bạn đã sẵn sàng khởi động tất cả các máy tính mini đó! Kết nối bộ sạc và bật nó lên. Tùy thuộc vào kiểu Raspberry Pi mà bạn sử dụng, chúng có thể mất một khoảng thời gian để khởi động, vì vậy hãy kiên nhẫn. Trong khi đó, hãy tận hưởng đèn LED nhấp nháy và quạt khởi động.
Kết nối thông qua SSH
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ có thể truy cập các thiết bị Raspberry Pi thông qua SSH. Hãy thử bằng cách chạy phần sau từ máy tính của bạn:
Giới thiệu mật khẩu của bạn và trả lời có để thêm thiết bị vào danh sách các máy chủ đã biết. Chúc mừng! Cụm của bạn hiện đang hoạt động.
Bạn có thể muốn chạy các lệnh để kiểm tra thông tin phần cứng. Ví dụ:
lscpu : Thông tin về kiến trúc CPU
df -H : Sử dụng dung lượng đĩa hệ thống tệp
sudo fdisk -l : Thông tin phân vùng
free -m : Dung lượng RAM đã sử dụng, dung lượng trống và tổng dung lượng RAM
cat /proc/version : Thông tin nhân Linux
Cấu hình thủ công với raspi-config
Nếu bạn có một Raspberry Pi, bạn có thể kết nối với nó thông qua SSH như được mô tả ở trên và sử dụng chương trình tiện ích raspi-config để định cấu hình các cài đặt khác nhau. Bạn có thể sửa đổi kết nối WiFi ( S1 ), thay đổi tên máy chủ ( S4 ) và mật khẩu người dùng ( S3 ) và mở rộng hệ thống tệp ( A1 ), trong số nhiều thứ khác.
Cấu hình tự động với Ansible
Nếu bạn có nhiều Raspberry Pi trong cụm của mình, bạn có thể muốn tự động hóa quá trình cấu hình bằng công cụ như . Với Ansible, bạn có thể chạy một lệnh trên nhiều máy mà không cần phải thực hiện các tác vụ lặp đi lặp lại. Ví dụ: giả sử chúng tôi muốn mở rộng hệ thống tệp trên mỗi Raspberry Pi. Điều này có thể được thực hiện từ dòng lệnh như sau:
sudo raspi-config --expand-rootfs
Nếu không có tự động hóa, bạn phải SSH thành rpi01.local , chạy lệnh trên và kết thúc phiên SSH. Bạn phải lặp lại tất cả các bước này cho rpi02.local , pr03.local , rp04.local , v.v. Thay vào đó, bạn có thể chỉ cần yêu cầu Ansible chạy lệnh cho bạn trên tất cả các máy. Hãy xem làm thế nào để làm điều này.
Bạn phải cài đặt Ansible trên một nút điều khiển được kết nối với mạng cục bộ của bạn. Nó có thể là một trong các thiết bị Raspberry Pi, máy tính xách tay đang làm việc của bạn hoặc bất kỳ máy nào khác miễn là nó chạy hệ điều hành dựa trên Unix như Linux hoặc macOS.
Tôi tình cờ có một máy tính xách tay cũ mà tôi đã đặt được kết nối với mạng của mình, vì vậy tôi đã sử dụng nó làm nút điều khiển (Tôi sẽ chỉ cách cài đặt cơ sở dữ liệu có tính năng sao chép trong các thiết bị Raspberry Pi trong một bài viết tới).
Tôi sẽ không xem qua hướng dẫn cài đặt Ansible vì quá trình này khác nhau trên các hệ điều hành khác nhau. Kiểm tra và cài đặt nó trên máy tính xách tay của bạn hoặc bất kỳ thiết bị nào mà bạn muốn gán làm nút điều khiển.
Trước khi bắt đầu, tôi khuyên bạn nên tạo một tệp cấu hình mẫu mà bạn có thể chỉnh sửa sau này theo ý muốn:
sudo su ansible-config init --disabled -t all > /etc/ansible/ansible.cfg exit
Trong tệp này, hãy tắt kiểm tra khóa máy chủ để đơn giản hóa quy trình. Đừng làm điều đó trong môi trường sản xuất! Thay đổi dòng sau:
;host_key_checking=True
đến điều này:
host_key_checking=False
Tiếp theo, bạn cần xác định khoảng không quảng cáo. Đây là danh sách các máy mà bạn muốn điều khiển bằng Ansible. Khoảng không quảng cáo được xác định trong tệp / etc / ansible / hosts . Ví dụ: bạn có thể thêm các máy sau vào khoảng không quảng cáo bằng cách sử dụng địa chỉ IP hoặc tên máy chủ của chúng:
Nếu các máy có kiểu mẫu nào đó trong địa chỉ IP hoặc tên máy chủ của chúng, bạn có thể sử dụng các dải ô khác. Đây là những gì bạn có thể làm với các thiết bị Raspberry Pi của mình. Chỉnh sửa tệp / etc / ansible / hosts bằng cách thêm phần sau vào cuối:
[rpis] rpi[01-08].local
Thay đổi mẫu để khớp với tên máy chủ và số của bạn. Điều này tương đương với:
Trong khoảng không quảng cáo này, rpis là một tên tùy ý mà bạn có thể sử dụng để chỉ tất cả các thiết bị Raspberry Pi khi chạy lệnh trên chúng bằng Ansible.
Bạn cần cấu hình tên người dùng SSH mà Ansible sẽ sử dụng khi kết nối với máy. Thêm phần sau vào tệp / etc / ansible / hosts :
[rpis:vars] ansible_user=pi
Thời gian để kiểm soát máy móc. Một khởi đầu tốt là ping chúng:
ansible rpis -m ping --ask-pass
Nhập mật khẩu SSH. Bạn sẽ thấy trong đầu ra cách "ping" được trả lời bằng "pong" cho mỗi máy (tôi chỉ hiển thị một ở đây):
Hãy quay lại với việc mở rộng hệ thống tệp (mặc dù, tôi nghĩ ngày nay điều này không còn cần thiết nữa, hãy cho tôi biết trong phần nhận xét nếu bạn có thể xác nhận điều này). Để thực hiện hành động này trên tất cả các máy, hãy chạy:
ansible rpis -m shell -a "raspi-config --expand-rootfs" --become --ask-pass
Và đơn giản như vậy, tất cả các thiết bị Raspberry Pi của bạn đều có hệ thống tệp mở rộng. Đây là thời điểm tốt để cập nhật hệ thống trên tất cả các máy:
ansible rpis -m shell -a "apt update -y" --become --ask-pass ansible rpis -m shell -a "apt upgrade -y" --become --ask-pass
Bạn có thể khởi động lại tất cả các thiết bị như sau:
ansible rpis -m shell -a "reboot" --become --ask-pass
Và khi bạn đã hoàn tất và muốn tắt tất cả các máy một cách an toàn, chỉ cần chạy:
ansible rpis -m shell -a "poweroff" --become --ask-pass
Cái gì tiếp theo?
Đây mới chỉ là sự bắt đầu. Bây giờ bạn có một cụm máy tính nhỏ sẵn sàng được điều khiển bởi Ansible. Bạn có thể thử thiết lập bất kỳ loại phần mềm máy chủ nào, bao gồm máy chủ web hoặc cơ sở dữ liệu ( ). Ngoài ra còn có nhiều hơn nữa về Ansible.
Tôi chỉ sơ bộ bề mặt ở đây bằng cách sử dụng , nhưng bạn có thể tạo ví dụ: tạo chứa trạng thái mà bạn muốn cụm của mình. Khám phá và vui chơi!