Ở đây chúng tôi trình bày cách thiết lập cụm MongoDB. Trong bài trước chúng tôi đã hướng dẫn cách cài đặt nó trên một máy
Có ba phần để cài đặt
- máy chủ cấu hình
- bộ định tuyến truy vấn
- máy chủ shard, tôi. e. , cơ sở dữ liệu
Nhìn vào sơ đồ bên dưới, quá trình mongos chạy như một bộ định tuyến, nghĩa là nó cho khách hàng biết nơi tìm kiếm dữ liệu. Dữ liệu được trải rộng trên cụm dựa trên chia sẻ. Sharding là việc gán các bản ghi cho các máy chủ dựa trên giá trị băm của một số chỉ mục. Máy chủ cấu hình giữ thông tin cấu hình
[Bài viết này là một phần của Hướng dẫn MongoDB của chúng tôi. Sử dụng menu bên phải để điều hướng. ]
Cài đặt MongoDB
Về mặt kỹ thuật, để tạo một MongoDB thành một cụm chỉ có nghĩa là ba lớp của kiến trúc MongoDB dưới dạng các quy trình riêng biệt. Bạn có thể làm điều này cho mục đích học tập trên một máy. Nhưng ở đây chúng tôi sử dụng hai
Chúng tôi sẽ cài đặt bộ định tuyến và máy chủ cấu hình trên 172. 31. 46. 15 và máy chủ shard trên 172. 31. 47. 43. Để đơn giản, hãy gọi máy chủ đầu tiên là máy chủ cấu hình và máy chủ thứ hai là máy chủ cơ sở dữ liệu
Không sử dụng apt-get để cài đặt MongoDB vì đó không phải là phiên bản hiện tại, thường. Thay vào đó hãy làm theo các bước dưới đây. Lưu ý rằng điều này cài đặt mongod [máy chủ cấu hình và shard], mongos [bộ định tuyến] và máy khách mongo dưới dạng ba gói riêng biệt
Mở cổng tường lửa 27017, 27018 và 27019 giữa hai máy chủ
Bạn cần cả ba gói trên máy chủ cấu hình nhưng chỉ mongodb-org-server trên máy chủ cơ sở dữ liệu. Trên Ubuntu, cài đặt chúng như thế này
wget //repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.5_amd64.deb sudo dpkg -i mongodb-org-server_4.0.5_amd64.deb wget //repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-shell_4.0.5_amd64.deb sudo dpkg -i mongodb-org-shell_4.0.5_amd64.deb wget //repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-mongos_4.0.5_amd64.deb sudo dpkg -i mongodb-org-mongos_4.0.5_amd64.deb
Lưu ý nếu làm lộn xộn bước nào thì remove server rồi xóa thư viện file data /var/lib/mongodb. Nếu bạn không xóa các tệp dữ liệu khi cài đặt lại phần mềm, nó sẽ giữ cấu hình trước đó và do đó khôi phục mọi lỗi bạn đã mắc phải
Cấu hình máy chủ
Đăng nhập vào máy chủ cấu hình
Để thiết lập cả ba máy chủ, chúng tôi sẽ lặp lại 4 bước tương tự trên mỗi máy chủ
- Chỉnh sửa tập tin cấu hình
- bắt đầu quá trình
- Kiểm tra nhật ký lỗi
- Đăng nhập vào shell để cấu hình thêm
Bây giờ, trên máy chủ cấu hình, hãy chỉnh sửa tệp cấu hình. Lưu ý để đơn giản, chúng tôi tạo cho mỗi tệp cấu hình có một tên mô tả
sudo vim /etc/mongodConfig.conf
Dán vào văn bản dưới đây. Đầu tiên, chúng tôi giải thích một số lĩnh vực
path: /var/log/mongodb/mongodConfig.logĐối với mỗi quy trình, chúng tôi đặt tên cho nhật ký để làm rõ quy trình đó dành cho quy trình nào.
port: 27019 bindIp: 172.31.46.15Theo mặc định, máy chủ cấu hình sẽ chạy trên cổng 2019 trong cấu hình cụm. Chúng tôi làm rõ điều đó ở đây để không cần phải nhớ rằng. Ngoài ra, địa chỉ IP là địa chỉ không lặp lại. Đó là để các máy chủ khác có thể tìm thấy máy chủ này.
sharding: clusterRole: configsvrSharding có nghĩa là phân phối dữ liệu theo một số lược đồ băm. Ở đây chúng tôi nói với MongoDB rằng máy chủ này là máy chủ cấu hình, trái ngược với máy chủ chia sẻ.
replication: replSetName: ConfigReplSetĐiều này có nghĩa là sao chép dữ liệu cấu hình này. Chúng tôi sử dụng rs. [] có chức năng thêm các bản sao khác. Chúng ta có thể sử dụng bất kỳ tên nào
Dán văn bản này vào /etc/mongodConfig. conf
storage: dbPath: /var/lib/mongodb journal: enabled: true systemLog: destination: file logAppend: true path: /var/log/mongodb/mongodConfig.log net: port: 27019 bindIp: 172.31.46.15 sharding: clusterRole: configsvr replication: replSetName: ConfigReplSet
bắt đầu quá trình
sudo mongod --config /etc/mongodConfig.conf&
Kiểm tra nhật ký để tìm lỗi
Đăng nhập vào vỏ
mongo 172.31.46.15:27019
Bật sao chép với rs. bắt đầu[] và kiểm tra trạng thái với rs. trạng thái[]. Lưu ý rằng đã chọn tên của bộ sao chép mà chúng tôi đã định cấu hình trong tệp cấu hình, ConfigReplSet
sudo vim /etc/mongodConfig.conf0
Cấu hình bộ định tuyến truy vấn
Đăng nhập vào máy chủ cấu hình.
Chỉnh sửa tệp cấu hình.
sudo vim /etc/mongodConfig.conf1
Dán vào văn bản dưới đây. Lưu ý
sudo vim /etc/mongodConfig.conf2Điều này cho bộ định tuyến truy vấn biết nơi tìm máy chủ cấu hình và bộ bản sao của chúng.
sudo vim /etc/mongodConfig.conf3
Bắt đầu dịch vụ. Lưu ý s trong mongos. Đây là quá trình bộ định tuyến truy vấn
sudo vim /etc/mongodConfig.conf4
Kiểm tra nhật ký và tìm lỗi
sudo vim /etc/mongodConfig.conf5
Định cấu hình phân đoạn
Đăng nhập vào máy chủ cơ sở dữ liệu
sudo vim /etc/mongodConfig.conf6
Dán vào văn bản dưới đây. Thông báo rằng
sudo vim /etc/mongodConfig.conf7Có nghĩa đây sẽ là máy chủ phân đoạn, trái ngược với máy chủ cấu hình.
sudo vim /etc/mongodConfig.conf8Điều này có nghĩa là sao chép dữ liệu. Trong máy chủ cấu hình, chúng tôi đã yêu cầu nó sao chép cấu hình.
sudo vim /etc/mongodConfig.conf9Theo mặc định, máy chủ shard chạy trên cổng 27018. Vì vậy, chúng tôi làm rõ điều đó để chúng tôi không phải nhớ điều đó.
path: /var/log/mongodb/mongodConfig.log0
bắt đầu quá trình
path: /var/log/mongodb/mongodConfig.log1
Kiểm tra nhật ký để tìm lỗi
path: /var/log/mongodb/mongodConfig.log2
Đăng nhập vào vỏ
path: /var/log/mongodb/mongodConfig.log3
Bật sao chép với rs. started[] và sau đó kiểm tra trạng thái bằng rs. trạng thái[]. Lưu ý tên ShardReplSet. Chúng tôi có thể sử dụng bất kỳ tên nào miễn là chúng tôi sử dụng cùng một tên trên tất cả các phân đoạn trong cụm
path: /var/log/mongodb/mongodConfig.log4
Thêm phân đoạn vào cụm
Quay lại máy chủ cấu hình và kết nối với bộ định tuyến
sudo vim /etc/mongodConfig.conf5
Dán tất cả các lệnh sau vào trình bao
path: /var/log/mongodb/mongodConfig.log6
Tạo một cơ sở dữ liệu có tên sách sau đó kích hoạt sharding
path: /var/log/mongodb/mongodConfig.log7
Tạo một bộ sưu tập
path: /var/log/mongodb/mongodConfig.log8
Tạo một chỉ mục. Chúng tôi sẽ lập chỉ mục trường isbn theo thứ tự giảm dần
path: /var/log/mongodb/mongodConfig.log9
Thêm một bản ghi
port: 27019 bindIp: 172.31.46.150
Bật sharding cho bộ sưu tập
port: 27019 bindIp: 172.31.46.151
Bây giờ hãy xác minh rằng dữ liệu được phân phối trên toàn cụm như hình bên dưới. Tất nhiên chúng tôi chỉ có một máy chủ cơ sở dữ liệu, vì vậy nó chỉ hiển thị một. Trong một bài đăng trên blog khác, chúng tôi sẽ chỉ cho bạn cách thêm nhiều máy chủ hơn