ಒಂದು ಡಿಸ್ಕ್ನಲ್ಲಿ ಹೊಂದಿಕೊಳ್ಳುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಡೇಟಾ ಇದ್ದಾಗ, RAID ಬಗ್ಗೆ ಯೋಚಿಸುವ ಸಮಯ. ಬಾಲ್ಯದಲ್ಲಿ, ನಾನು ನನ್ನ ಹಿರಿಯರಿಂದ ಆಗಾಗ್ಗೆ ಕೇಳುತ್ತಿದ್ದೆ: "ಒಂದು ದಿನ RAID ಭೂತಕಾಲಕ್ಕೆ ಸೇರುತ್ತದೆ, ವಸ್ತು ಸಂಗ್ರಹಣೆ ಜಗತ್ತನ್ನು ತುಂಬುತ್ತದೆ, ಮತ್ತು CEPH ಎಂದರೇನು ಎಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ," ಆದ್ದರಿಂದ ನನ್ನ ಸ್ವತಂತ್ರ ಜೀವನದಲ್ಲಿ ನಾನು ಮಾಡಿದ ಮೊದಲ ಕೆಲಸವೆಂದರೆ ನನ್ನ ಸ್ವಂತ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ರಚಿಸುವುದು. ceph ನ ಆಂತರಿಕ ರಚನೆಯೊಂದಿಗೆ ಪರಿಚಯ ಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಅದರ ಅನ್ವಯದ ವ್ಯಾಪ್ತಿಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಪ್ರಯೋಗದ ಗುರಿಯಾಗಿದೆ. ಮಧ್ಯಮ ಗಾತ್ರದ ವ್ಯವಹಾರಗಳಲ್ಲಿ ಮತ್ತು ಸಣ್ಣ ವ್ಯವಹಾರಗಳಲ್ಲಿ ceph ನ ಅನುಷ್ಠಾನವು ಎಷ್ಟು ಸಮರ್ಥನೀಯವಾಗಿದೆ? ಹಲವಾರು ವರ್ಷಗಳ ಕಾರ್ಯಾಚರಣೆ ಮತ್ತು ಒಂದೆರಡು ಬದಲಾಯಿಸಲಾಗದ ಡೇಟಾ ನಷ್ಟಗಳ ನಂತರ, ಎಲ್ಲವೂ ಅಷ್ಟು ಸರಳವಲ್ಲ ಎಂಬ ಸೂಕ್ಷ್ಮತೆಗಳ ತಿಳುವಳಿಕೆ ಹುಟ್ಟಿಕೊಂಡಿತು. CEPH ನ ವೈಶಿಷ್ಟ್ಯಗಳು ಅದರ ವ್ಯಾಪಕ ಬಳಕೆಗೆ ಅಡೆತಡೆಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ ಮತ್ತು ಅವುಗಳ ಕಾರಣದಿಂದಾಗಿ, ಪ್ರಯೋಗಗಳು ಅಂತ್ಯವನ್ನು ತಲುಪಿದವು. ತೆಗೆದುಕೊಂಡ ಎಲ್ಲಾ ಹಂತಗಳು, ಪಡೆದ ಫಲಿತಾಂಶ ಮತ್ತು ಮಾಡಿದ ತೀರ್ಮಾನಗಳ ವಿವರಣೆಯನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ. ಜ್ಞಾನವುಳ್ಳ ಜನರು ತಮ್ಮ ಅನುಭವವನ್ನು ಹಂಚಿಕೊಂಡರೆ ಮತ್ತು ಕೆಲವು ಅಂಶಗಳನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಿದರೆ, ನಾನು ಕೃತಜ್ಞನಾಗಿದ್ದೇನೆ.
ಗಮನಿಸಿ: ಇಡೀ ಲೇಖನದ ಪರಿಷ್ಕರಣೆಯ ಅಗತ್ಯವಿರುವ ಕೆಲವು ಊಹೆಗಳಲ್ಲಿನ ಗಂಭೀರ ದೋಷಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಕಾರರು ಎತ್ತಿ ತೋರಿಸಿದ್ದಾರೆ.
CEPH ಕಾರ್ಯತಂತ್ರ
ಒಂದು CEPH ಕ್ಲಸ್ಟರ್ ಅನಿಯಂತ್ರಿತ ಗಾತ್ರದ ಡಿಸ್ಕ್ಗಳ ಅನಿಯಂತ್ರಿತ ಸಂಖ್ಯೆಯ K ಅನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಮೇಲೆ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಪ್ರತಿ ತುಣುಕನ್ನು (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ 4 MB) ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ N ಬಾರಿ ನಕಲು ಮಾಡುತ್ತದೆ.
ಎರಡು ಒಂದೇ ರೀತಿಯ ಡಿಸ್ಕ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸರಳ ಪ್ರಕರಣವನ್ನು ಪರಿಗಣಿಸೋಣ. ಅವುಗಳನ್ನು RAID 1 ಅನ್ನು ರಚಿಸಲು ಅಥವಾ N=2 ನೊಂದಿಗೆ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ರಚಿಸಲು ಬಳಸಬಹುದು - ಫಲಿತಾಂಶವು ಒಂದೇ ಆಗಿರುತ್ತದೆ. ವಿಭಿನ್ನ ಗಾತ್ರದ ಮೂರು ಡಿಸ್ಕ್ಗಳಿದ್ದರೆ, N=2 ನೊಂದಿಗೆ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ರಚಿಸುವುದು ಸುಲಭ: ಕೆಲವು ಡೇಟಾ 1 ಮತ್ತು 2 ಡಿಸ್ಕ್ಗಳಲ್ಲಿ, ಕೆಲವು 1 ಮತ್ತು 3 ರಲ್ಲಿ ಮತ್ತು ಕೆಲವು 2 ಮತ್ತು 3 ರಲ್ಲಿ ಇರುತ್ತದೆ, ಆದರೆ RAID ಸಾಧ್ಯವಿಲ್ಲ (ಅಂತಹ RAID ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿದೆ, ಆದರೆ ಅದು ವಿಕೃತವಾಗಿರುತ್ತದೆ). ಇನ್ನೂ ಹೆಚ್ಚಿನ ಡಿಸ್ಕ್ಗಳಿದ್ದರೆ, RAID 5 ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿದೆ; CEPH ಅನಲಾಗ್ ಅನ್ನು ಹೊಂದಿದೆ - erasure_code, ಇದು ಡೆವಲಪರ್ಗಳ ಆರಂಭಿಕ ಪರಿಕಲ್ಪನೆಗಳಿಗೆ ವಿರುದ್ಧವಾಗಿದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಅದನ್ನು ಪರಿಗಣಿಸಲಾಗುವುದಿಲ್ಲ. RAID 5 ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಡಿಸ್ಕ್ಗಳಿವೆ ಮತ್ತು ಅವೆಲ್ಲವೂ ಉತ್ತಮ ಸ್ಥಿತಿಯಲ್ಲಿವೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ಒಂದು ವಿಫಲವಾದರೆ, ಡಿಸ್ಕ್ ಅನ್ನು ಬದಲಾಯಿಸುವವರೆಗೆ ಮತ್ತು ಡೇಟಾವನ್ನು ಅದಕ್ಕೆ ಮರುಸ್ಥಾಪಿಸುವವರೆಗೆ ಇತರರು ಕಾಯಬೇಕು. ಆದಾಗ್ಯೂ, N>=3 ನೊಂದಿಗೆ CEPH ಹಳೆಯ ಡಿಸ್ಕ್ಗಳ ಬಳಕೆಯನ್ನು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ, ನಿರ್ದಿಷ್ಟವಾಗಿ, ನೀವು ಡೇಟಾದ ಒಂದು ನಕಲನ್ನು ಸಂಗ್ರಹಿಸಲು ಹಲವಾರು ಉತ್ತಮ ಡಿಸ್ಕ್ಗಳನ್ನು ಇಟ್ಟುಕೊಂಡರೆ ಮತ್ತು ಉಳಿದ ಎರಡು ಅಥವಾ ಮೂರು ಪ್ರತಿಗಳನ್ನು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಹಳೆಯ ಡಿಸ್ಕ್ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದರೆ, ಮಾಹಿತಿಯು ಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಹೊಸ ಡಿಸ್ಕ್ಗಳು ಜೀವಂತವಾಗಿರುವಾಗ, ಯಾವುದೇ ಸಮಸ್ಯೆಗಳಿಲ್ಲ, ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಒಂದು ಮುರಿದರೆ, ಐದು ವರ್ಷಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸೇವಾ ಜೀವನವನ್ನು ಹೊಂದಿರುವ ಮೂರು ಡಿಸ್ಕ್ಗಳ ಏಕಕಾಲಿಕ ವೈಫಲ್ಯ, ಮೇಲಾಗಿ ವಿಭಿನ್ನ ಸರ್ವರ್ಗಳಿಂದ, ಅತ್ಯಂತ ಅಸಂಭವ ಘಟನೆಯಾಗಿದೆ.
ಪ್ರತಿಗಳ ವಿತರಣೆಯಲ್ಲಿ ಒಂದು ಸೂಕ್ಷ್ಮತೆಯಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಡೇಟಾವನ್ನು ವಿತರಣಾ ಗುಂಪುಗಳ PG ಯ ದೊಡ್ಡ ಸಂಖ್ಯೆಯಲ್ಲಿ (ಪ್ರತಿ ಡಿಸ್ಕ್ಗೆ ~100) ವಿಂಗಡಿಸಲಾಗಿದೆ ಎಂದು ಊಹಿಸಲಾಗಿದೆ, ಪ್ರತಿಯೊಂದೂ ಕೆಲವು ಡಿಸ್ಕ್ಗಳಲ್ಲಿ ನಕಲು ಮಾಡಲಾಗಿದೆ. K=6, N=2 ಎಂದು ಹೇಳೋಣ, ನಂತರ ಯಾವುದೇ ಎರಡು ಡಿಸ್ಕ್ಗಳು ವಿಫಲವಾದರೆ, ಡೇಟಾ ಕಳೆದುಹೋಗುವುದು ಖಚಿತ, ಏಕೆಂದರೆ ಸಂಭವನೀಯತೆ ಸಿದ್ಧಾಂತದ ಪ್ರಕಾರ, ಈ ಎರಡು ಡಿಸ್ಕ್ಗಳಲ್ಲಿ ಕನಿಷ್ಠ ಒಂದು PG ಇರುತ್ತದೆ. ಮತ್ತು ಒಂದು ಗುಂಪಿನ ನಷ್ಟವು ಪೂಲ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ. ಡಿಸ್ಕ್ಗಳನ್ನು ಮೂರು ಜೋಡಿಗಳಾಗಿ ವಿಂಗಡಿಸಿದರೆ ಮತ್ತು ಡೇಟಾವನ್ನು ಒಂದು ಜೋಡಿಯೊಳಗಿನ ಡಿಸ್ಕ್ಗಳಲ್ಲಿ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಲು ಅನುಮತಿಸಿದರೆ, ಅಂತಹ ವಿತರಣೆಯು ಯಾವುದೇ ಒಂದು ಡಿಸ್ಕ್ನ ವೈಫಲ್ಯಕ್ಕೆ ನಿರೋಧಕವಾಗಿರುತ್ತದೆ, ಆದರೆ ಎರಡು ವಿಫಲವಾದರೆ, ಡೇಟಾ ನಷ್ಟದ ಸಂಭವನೀಯತೆ 100% ಅಲ್ಲ, ಆದರೆ ಕೇವಲ 3/15, ಮತ್ತು ಮೂರು ಡಿಸ್ಕ್ಗಳು ವಿಫಲವಾದರೂ ಸಹ, ಕೇವಲ 12/20. ಆದ್ದರಿಂದ, ಡೇಟಾ ವಿತರಣೆಯಲ್ಲಿನ ಎಂಟ್ರೊಪಿ ದೋಷ ಸಹಿಷ್ಣುತೆಗೆ ಕೊಡುಗೆ ನೀಡುವುದಿಲ್ಲ. ಫೈಲ್ ಸರ್ವರ್ಗೆ, ಉಚಿತ RAM ಪ್ರತಿಕ್ರಿಯೆ ವೇಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಸಹ ಗಮನಿಸಿ. ಪ್ರತಿಯೊಂದು ನೋಡ್ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಮೆಮೊರಿ ಮತ್ತು ಎಲ್ಲಾ ನೋಡ್ಗಳಲ್ಲಿ ಹೆಚ್ಚಿನ ಮೆಮೊರಿ ಇದ್ದಷ್ಟೂ ಅದು ವೇಗವಾಗಿರುತ್ತದೆ. ಇದು ನಿಸ್ಸಂದೇಹವಾಗಿ ಒಂದೇ ಸರ್ವರ್ಗಿಂತ ಕ್ಲಸ್ಟರ್ನ ಪ್ರಯೋಜನವಾಗಿದೆ ಮತ್ತು ವಿಶೇಷವಾಗಿ ಹಾರ್ಡ್ವೇರ್ NAS, ಅಲ್ಲಿ ಬಹಳ ಕಡಿಮೆ ಪ್ರಮಾಣದ ಮೆಮೊರಿಯನ್ನು ನಿರ್ಮಿಸಲಾಗಿದೆ.
ಕನಿಷ್ಠ ಹೂಡಿಕೆಯೊಂದಿಗೆ ಬಳಕೆಯಲ್ಲಿಲ್ಲದ ಉಪಕರಣಗಳಿಂದ ಅಳೆಯುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ ಹತ್ತಾರು ಟಿಬಿಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಡೇಟಾ ಸಂಗ್ರಹ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸಲು CEPH ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ ಎಂದು ಇದು ಅನುಸರಿಸುತ್ತದೆ (ಇದಕ್ಕೆ ಸಹಜವಾಗಿಯೇ ವೆಚ್ಚಗಳು ಬೇಕಾಗುತ್ತವೆ, ಆದರೆ ವಾಣಿಜ್ಯ ಸಂಗ್ರಹ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಚಿಕ್ಕದಾಗಿದೆ).
ಕ್ಲಸ್ಟರ್ ಅನುಷ್ಠಾನ
ಪ್ರಯೋಗಕ್ಕಾಗಿ, ನಾವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ ಕಂಪ್ಯೂಟರ್ ಇಂಟೆಲ್ DQ57TM + ಇಂಟೆಲ್ ಕೋರ್ i3 540 + 16 GB RAM ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ. ನಾವು 2 TB ಯ ನಾಲ್ಕು ಡಿಸ್ಕ್ಗಳನ್ನು ಒಂದು ರೀತಿಯ RAID10 ನಲ್ಲಿ ಸಂಘಟಿಸುತ್ತೇವೆ, ಯಶಸ್ವಿ ಪರೀಕ್ಷೆಯ ನಂತರ ನಾವು ಎರಡನೇ ನೋಡ್ ಮತ್ತು ಅದೇ ಸಂಖ್ಯೆಯ ಡಿಸ್ಕ್ಗಳನ್ನು ಸೇರಿಸುತ್ತೇವೆ.
ಸ್ಥಾಪಿಸಿ Linuxವಿತರಣೆಯು ಗ್ರಾಹಕೀಯಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಸ್ಥಿರವಾಗಿರಬೇಕು. ಈ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವವರು Debian ಮತ್ತು ಸೂಸ್. ಸೂಸ್ ಹೆಚ್ಚು ಹೊಂದಿಕೊಳ್ಳುವ ಸ್ಥಾಪಕವನ್ನು ಹೊಂದಿದ್ದು, ಯಾವುದೇ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ; ದುರದೃಷ್ಟವಶಾತ್, ಸಿಸ್ಟಮ್ಗೆ ಹಾನಿಯಾಗದಂತೆ ನಾನು ಯಾವುದನ್ನು ತೆಗೆದುಹಾಕಬಹುದೆಂದು ನನಗೆ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಾವು ಸ್ಥಾಪಿಸಿದ್ದೇವೆ Debian ಡಿಬೂಟ್ಸ್ಟ್ರಾಪ್ ಬಸ್ಟರ್ ಬಳಸಿ. ಮಿನ್-ಬೇಸ್ ಆಯ್ಕೆಯು ಡ್ರೈವರ್ಗಳ ಕೊರತೆಯಿರುವ ಕ್ರಿಯಾತ್ಮಕವಲ್ಲದ ವ್ಯವಸ್ಥೆಯನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ. ಪೂರ್ಣ ಆವೃತ್ತಿಗೆ ಹೋಲಿಸಿದರೆ ಗಾತ್ರ ವ್ಯತ್ಯಾಸವು ಅಷ್ಟೊಂದು ಮಹತ್ವದ್ದಾಗಿಲ್ಲ, ಅದು ಚಿಂತಿಸಲು ಯೋಗ್ಯವಾಗಿರುತ್ತದೆ. ನಾನು ಭೌತಿಕ ಯಂತ್ರದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿರುವುದರಿಂದ, ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಂತೆ ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ನಾನು ಬಯಸುತ್ತೇನೆ. LVM ಅಥವಾ btrfs (ಅಥವಾ xfs, ಅಥವಾ zfs—ವ್ಯತ್ಯಾಸವು ಅಷ್ಟು ದೊಡ್ಡದಲ್ಲ) ಈ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳು LVM ನ ಬಲವಾದ ಸೂಟ್ ಅಲ್ಲ. ನಾವು btrfs ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ. ಮತ್ತು ಬೂಟ್ಲೋಡರ್ MBR ನಲ್ಲಿದೆ. ನೀವು ಅದನ್ನು 1 MB ಪಾರ್ಟಿಷನ್ ಟೇಬಲ್ ಪ್ರದೇಶಕ್ಕೆ ಹಿಸುಕಿ ಸಂಪೂರ್ಣ ಜಾಗವನ್ನು ಸಿಸ್ಟಮ್ಗೆ ಮೀಸಲಿಡಬಹುದಾದಾಗ FAT ಪಾರ್ಟಿಷನ್ನೊಂದಿಗೆ 50 MB ಡಿಸ್ಕ್ ಅನ್ನು ಅಸ್ತವ್ಯಸ್ತಗೊಳಿಸುವುದರಲ್ಲಿ ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ. ಇದು 700 MB ಡಿಸ್ಕ್ ಜಾಗವನ್ನು ತೆಗೆದುಕೊಂಡಿತು. ಮೂಲ SUSE ಅನುಸ್ಥಾಪನೆಯು ಎಷ್ಟು ಬಳಸುತ್ತದೆ ಎಂದು ನನಗೆ ನೆನಪಿಲ್ಲ, ಆದರೆ ಅದು ಸುಮಾರು 1.1 ಅಥವಾ 1.4 GB ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
CEPH ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಆವೃತ್ತಿ 12 ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ. debian ಮತ್ತು 15.2.3 ವೆಬ್ಸೈಟ್ನಿಂದ ನೇರವಾಗಿ ಸಂಪರ್ಕ ಸಾಧಿಸಿ. "CEPH ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಸ್ಥಾಪಿಸುವುದು" ವಿಭಾಗದಲ್ಲಿರುವ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ, ಈ ಕೆಳಗಿನ ಎಚ್ಚರಿಕೆಗಳೊಂದಿಗೆ:
- ರೆಪೊಸಿಟರಿಯನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೊದಲು, ನೀವು gnupg wget ca-ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.
- ರೆಪೊಸಿಟರಿಯನ್ನು ಸಂಪರ್ಕಿಸಿದ ನಂತರ, ಆದರೆ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವ ಮೊದಲು, ಪ್ಯಾಕೇಜ್ಗಳ ಸ್ಥಾಪನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ: apt -y --no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr
- ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ, CEPH ಅಪರಿಚಿತ ಕಾರಣಗಳಿಗಾಗಿ lvm2 ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ತಾತ್ವಿಕವಾಗಿ, ಇದು ವಿಷಾದಕರವಲ್ಲ, ಆದರೆ ಅನುಸ್ಥಾಪನೆಯು ವಿಫಲತೆಯಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ CEPH ಅನ್ನು ಸಹ ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ.
ಈ ಪ್ಯಾಚ್ ಸಹಾಯ ಮಾಡಿತು:
cat << EOF >> /var/lib/dpkg/status Package: lvm2 Status: install ok installed Priority: important Section: admin Installed-Size: 0 Maintainer: Debian Adduser Developers <adduser@packages.debian.org> Architecture: all Multi-Arch: foreign Version: 113.118 Description: No-install EOF
ಕ್ಲಸ್ಟರ್ ಅವಲೋಕನ
ceph-osd — ಡಿಸ್ಕ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಜವಾಬ್ದಾರಿಯನ್ನು ಹೊಂದಿದೆ. ಪ್ರತಿ ಡಿಸ್ಕ್ಗೆ, ವಸ್ತುಗಳನ್ನು ಓದಲು ಅಥವಾ ಬರೆಯಲು ವಿನಂತಿಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವ ನೆಟ್ವರ್ಕ್ ಸೇವೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಡಿಸ್ಕ್ನಲ್ಲಿ ಎರಡು ವಿಭಾಗಗಳನ್ನು ರಚಿಸಲಾಗಿದೆ. ಅವುಗಳಲ್ಲಿ ಒಂದು ಕ್ಲಸ್ಟರ್, ಡಿಸ್ಕ್ ಸಂಖ್ಯೆ ಮತ್ತು ಕ್ಲಸ್ಟರ್ ಕೀಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಡಿಸ್ಕ್ ಅನ್ನು ಸೇರಿಸುವಾಗ 1 KB ಗಾತ್ರದ ಈ ಮಾಹಿತಿಯನ್ನು ಒಮ್ಮೆ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದು ಬದಲಾಗುವುದನ್ನು ನಾನು ಎಂದಿಗೂ ಗಮನಿಸಿಲ್ಲ. ಎರಡನೇ ವಿಭಾಗವು ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ ಮತ್ತು CEPH ಬೈನರಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಅನುಸ್ಥಾಪನೆಯು ಸೇವಾ ಮಾಹಿತಿಗಾಗಿ 100 MB xfs ವಿಭಾಗವನ್ನು ರಚಿಸಿದೆ. ನಾನು ಡಿಸ್ಕ್ ಅನ್ನು MBR ಗೆ ಪರಿವರ್ತಿಸಿದೆ ಮತ್ತು ಕೇವಲ 16 MB ಅನ್ನು ನಿಗದಿಪಡಿಸಿದೆ - ಸೇವೆಯು ದೂರು ನೀಡುವುದಿಲ್ಲ. ಯಾವುದೇ ಸಮಸ್ಯೆಗಳಿಲ್ಲದೆ xfs ಅನ್ನು ext ನೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದು ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. ಈ ವಿಭಾಗವನ್ನು /var/lib/… ನಲ್ಲಿ ಜೋಡಿಸಲಾಗಿದೆ, ಅಲ್ಲಿ ಸೇವೆಯು OSD ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಬೈನರಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲಾದ ಬ್ಲಾಕ್ ಸಾಧನಕ್ಕೆ ಲಿಂಕ್ ಅನ್ನು ಸಹ ಕಂಡುಕೊಳ್ಳುತ್ತದೆ. ಸೈದ್ಧಾಂತಿಕವಾಗಿ, ನೀವು ತಕ್ಷಣ ಸಹಾಯಕವಾದವುಗಳನ್ನು /var/lib/… ನಲ್ಲಿ ಇರಿಸಬಹುದು ಮತ್ತು ಡೇಟಾಕ್ಕಾಗಿ ಸಂಪೂರ್ಣ ಡಿಸ್ಕ್ ಅನ್ನು ನಿಯೋಜಿಸಬಹುದು. ceph-deploy ಮೂಲಕ OSD ರಚಿಸುವಾಗ, /var/lib/… ನಲ್ಲಿ ವಿಭಾಗವನ್ನು ಆರೋಹಿಸಲು ನಿಯಮವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ceph ಬಳಕೆದಾರರಿಗೆ ಅಗತ್ಯವಿರುವ ಬ್ಲಾಕ್ ಸಾಧನವನ್ನು ಓದಲು ಹಕ್ಕುಗಳನ್ನು ಸಹ ನೀಡಲಾಗುತ್ತದೆ. ಹಸ್ತಚಾಲಿತವಾಗಿ ಸ್ಥಾಪಿಸುವಾಗ, ನೀವು ಇದನ್ನು ನೀವೇ ಮಾಡಬೇಕು, ದಸ್ತಾವೇಜನ್ನು ಇದರ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಸಾಕಷ್ಟು ಭೌತಿಕ ಮೆಮೊರಿ ಇರುವಂತೆ osd ಮೆಮೊರಿ ಗುರಿ ನಿಯತಾಂಕವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ಸಹ ಸೂಕ್ತವಾಗಿದೆ.
ceph-mds. ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ, CEPH ಒಂದು ವಸ್ತು ಸಂಗ್ರಹವಾಗಿದೆ. ಸಂಗ್ರಹಣೆಯನ್ನು ನಿರ್ಬಂಧಿಸುವ ಸಾಮರ್ಥ್ಯವು ಪ್ರತಿ 4MB ಬ್ಲಾಕ್ ಅನ್ನು ಒಂದು ವಸ್ತುವಾಗಿ ಸಂಗ್ರಹಿಸುವುದಕ್ಕೆ ಬರುತ್ತದೆ. ಫೈಲ್ ಸಂಗ್ರಹಣೆಯು ಒಂದೇ ತತ್ತ್ವದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಎರಡು ಪೂಲ್ಗಳನ್ನು ರಚಿಸಲಾಗಿದೆ: ಒಂದು ಮೆಟಾಡೇಟಾಕ್ಕಾಗಿ, ಇನ್ನೊಂದು ಡೇಟಾಕ್ಕಾಗಿ. ಅವುಗಳನ್ನು ಫೈಲ್ ಸಿಸ್ಟಮ್ಗೆ ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ. ಈ ಹಂತದಲ್ಲಿ, ಕೆಲವು ದಾಖಲೆಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಳಿಸಿದರೆ ಆದರೆ ಎರಡೂ ಪೂಲ್ಗಳನ್ನು ಉಳಿಸಿದರೆ, ನೀವು ಅದನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಬ್ಲಾಕ್ಗಳ ಮೂಲಕ ಫೈಲ್ಗಳನ್ನು ಹೊರತೆಗೆಯಲು ಒಂದು ವಿಧಾನವಿದೆ, ನಾನು ಅದನ್ನು ಪರೀಕ್ಷಿಸಿಲ್ಲ. ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ceph-mds ಸೇವೆಯು ಕಾರಣವಾಗಿದೆ. ಪ್ರತಿ ಫೈಲ್ ಸಿಸ್ಟಮ್ಗೆ ಸೇವೆಯ ಪ್ರತ್ಯೇಕ ನಿದರ್ಶನ ಅಗತ್ಯವಿದೆ. ಒಂದರಲ್ಲಿ ಹಲವಾರು ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳ ಹೋಲಿಕೆಯನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ "ಸೂಚ್ಯಂಕ" ಆಯ್ಕೆ ಇದೆ - ಸಹ ಪರೀಕ್ಷಿಸಲಾಗಿಲ್ಲ.
ceph-mon — ಈ ಸೇವೆಯು ಕ್ಲಸ್ಟರ್ ನಕ್ಷೆಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಇದು ಎಲ್ಲಾ OSD ಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ, OSD ಗಳಲ್ಲಿ PG ಗಳನ್ನು ವಿತರಿಸುವ ಅಲ್ಗಾರಿದಮ್, ಮತ್ತು, ಮುಖ್ಯವಾಗಿ, ಎಲ್ಲಾ ವಸ್ತುಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ (ಈ ಕಾರ್ಯವಿಧಾನದ ವಿವರಗಳು ನನಗೆ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ: /var/lib/ceph/mon/…/store.db ಡೈರೆಕ್ಟರಿ ಇದೆ, ಇದು ದೊಡ್ಡ ಫೈಲ್ ಅನ್ನು ಹೊಂದಿದೆ — 26MB, ಮತ್ತು ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ 105K ವಸ್ತುಗಳು ಇವೆ, ಇದು ಪ್ರತಿ ವಸ್ತುವಿಗೆ 256 ಬೈಟ್ಗಳಿಗಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು — ಮಾನಿಟರ್ ಎಲ್ಲಾ ವಸ್ತುಗಳು ಮತ್ತು ಅವು ಇರುವ PG ಗಳ ಪಟ್ಟಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ). ಈ ಡೈರೆಕ್ಟರಿಗೆ ಹಾನಿಯು ಕ್ಲಸ್ಟರ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಡೇಟಾದ ನಷ್ಟಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ CRUSH ಎಂಬ ತೀರ್ಮಾನವು PG ಗಳು OSD ಯಿಂದ ಹೇಗೆ ನೆಲೆಗೊಂಡಿವೆ ಮತ್ತು ವಸ್ತುಗಳು PG ಗಳಿಂದ ಹೇಗೆ ನೆಲೆಗೊಂಡಿವೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ - ಡೆವಲಪರ್ಗಳು ಈ ಪದವನ್ನು ಹೇಗೆ ತಪ್ಪಿಸಿದರೂ ಅವುಗಳನ್ನು ಡೇಟಾಬೇಸ್ ಒಳಗೆ ಕೇಂದ್ರೀಯವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ಮೊದಲನೆಯದಾಗಿ, ನಾವು RO ಮೋಡ್ನಲ್ಲಿ ಫ್ಲಾಶ್ ಡ್ರೈವ್ನಲ್ಲಿ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಡೇಟಾಬೇಸ್ ನಿರಂತರವಾಗಿ ರೆಕಾರ್ಡ್ ಆಗುತ್ತಿರುವುದರಿಂದ, ಇದಕ್ಕಾಗಿ ಹೆಚ್ಚುವರಿ ಡಿಸ್ಕ್ ಅಗತ್ಯವಿದೆ (1 GB ಗಿಂತ ಹೆಚ್ಚು ಅಲ್ಲ), ಎರಡನೆಯದಾಗಿ, ನೈಜ ಸಮಯದಲ್ಲಿ ಈ ಡೇಟಾಬೇಸ್ನ ನಕಲನ್ನು ಹೊಂದಿರುವುದು ಅವಶ್ಯಕ. ಹಲವಾರು ಮಾನಿಟರ್ಗಳಿದ್ದರೆ, ದೋಷ ಸಹಿಷ್ಣುತೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಒದಗಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ ಒಂದು ಮಾನಿಟರ್ ಇರುತ್ತದೆ, ಗರಿಷ್ಠ - ಎರಡು. OSD ಡೇಟಾವನ್ನು ಆಧರಿಸಿ ಮಾನಿಟರ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಸೈದ್ಧಾಂತಿಕ ಕಾರ್ಯವಿಧಾನವಿದೆ, ನಾನು ವಿವಿಧ ಕಾರಣಗಳಿಗಾಗಿ ಮೂರು ಬಾರಿ ಅದನ್ನು ಆಶ್ರಯಿಸಿದೆ, ಮತ್ತು ಮೂರು ಬಾರಿ ಯಾವುದೇ ದೋಷ ಸಂದೇಶಗಳು ಮತ್ತು ಡೇಟಾ ಇರಲಿಲ್ಲ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಕಾರ್ಯವಿಧಾನವು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ಒಂದೋ ನಾವು OSD ನಲ್ಲಿ ಚಿಕಣಿ ವಿಭಾಗವನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು ಡೇಟಾಬೇಸ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು RAID ಅನ್ನು ಜೋಡಿಸುತ್ತೇವೆ, ಅದು ಖಂಡಿತವಾಗಿಯೂ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಕೆಟ್ಟ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ, ಅಥವಾ ನಾವು ಕನಿಷ್ಠ ಎರಡು ವಿಶ್ವಾಸಾರ್ಹ ಭೌತಿಕ ಮಾಧ್ಯಮಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತೇವೆ, ಮೇಲಾಗಿ USB, ಆದ್ದರಿಂದ ಪೋರ್ಟ್ಗಳನ್ನು ಆಕ್ರಮಿಸುವುದಿಲ್ಲ.
rados-gw — S3 ಪ್ರೋಟೋಕಾಲ್ ಮತ್ತು ಅಂತಹುದೇ ಮೂಲಕ ವಸ್ತು ಸಂಗ್ರಹಣೆಯನ್ನು ರಫ್ತು ಮಾಡುತ್ತದೆ. ಬಹು ಪೂಲ್ಗಳನ್ನು ರಚಿಸುತ್ತದೆ, ಏಕೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ. ಹೆಚ್ಚು ಪ್ರಯೋಗ ಮಾಡಲಿಲ್ಲ.
ceph-mgr — ಈ ಸೇವೆಯನ್ನು ಸ್ಥಾಪಿಸಿದಾಗ, ಹಲವಾರು ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಒಂದು ಆಟೋಸ್ಕೇಲ್, ಇದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಇದು ಸರಿಯಾದ ಸಂಖ್ಯೆಯ PG/OSD ಅನ್ನು ನಿರ್ವಹಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ನೀವು ಅನುಪಾತವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಲು ಬಯಸಿದರೆ, ನೀವು ಪ್ರತಿ ಪೂಲ್ಗೆ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು, ಆದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಮಾಡ್ಯೂಲ್ 0 ರಿಂದ ವಿಭಜನೆಯೊಂದಿಗೆ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ ಮತ್ತು ಕ್ಲಸ್ಟರ್ ಸ್ಥಿತಿ ERROR ಆಗುತ್ತದೆ. ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಪೈಥಾನ್ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ, ಮತ್ತು ನೀವು ಅದರಲ್ಲಿ ಅಗತ್ಯವಾದ ಸಾಲನ್ನು ಕಾಮೆಂಟ್ ಮಾಡಿದರೆ, ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ವಿವರಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ನನಗೆ ತುಂಬಾ ಸೋಮಾರಿಯಾಗಿದೆ.
ಬಳಸಿದ ಮೂಲಗಳ ಪಟ್ಟಿ:
ಸ್ಕ್ರಿಪ್ಟ್ ಪಟ್ಟಿಗಳು:
ಡಿಬೂಟ್ಸ್ಟ್ರಾಪ್ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು
blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/
chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat << EOF > /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat << EOF >> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <adduser@packages.debian.org>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <adduser@packages.debian.org>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6
apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6ಒಂದು ಕ್ಲಸ್ಟರ್ ರಚಿಸಿ
apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon
echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat << EOF > /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF
ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
ceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status
# dashboard
apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1OSD (ಭಾಗ) ಸೇರಿಸಲಾಗುತ್ತಿದೆ
apt install ceph-osd
osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02 block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnumಸಾರಾಂಶ
CEPH ನ ಮುಖ್ಯ ಮಾರ್ಕೆಟಿಂಗ್ ಪ್ರಯೋಜನವೆಂದರೆ CRUSH — ಡೇಟಾದ ಸ್ಥಳವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಒಂದು ಅಲ್ಗಾರಿದಮ್. ಮಾನಿಟರ್ಗಳು ಈ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಕ್ಲೈಂಟ್ಗಳಿಗೆ ವಿತರಿಸುತ್ತವೆ, ಅದರ ನಂತರ ಕ್ಲೈಂಟ್ಗಳು ಅಗತ್ಯವಿರುವ ನೋಡ್ ಮತ್ತು ಅಗತ್ಯವಿರುವ OSD ಅನ್ನು ನೇರವಾಗಿ ವಿನಂತಿಸುತ್ತವೆ. CRUSH ಕೇಂದ್ರೀಕರಣದ ಅನುಪಸ್ಥಿತಿಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇದು ಮುದ್ರಿಸಬಹುದಾದ ಮತ್ತು ಗೋಡೆಯ ಮೇಲೆ ನೇತುಹಾಕಬಹುದಾದ ಒಂದು ಸಣ್ಣ ಫೈಲ್ ಆಗಿದೆ. ಅಭ್ಯಾಸವು CRUSH ಒಂದು ಸಮಗ್ರ ನಕ್ಷೆಯಲ್ಲ ಎಂದು ತೋರಿಸಿದೆ. ನೀವು ಮಾನಿಟರ್ಗಳನ್ನು ನಾಶಪಡಿಸಿದರೆ ಮತ್ತು ಮರು-ರಚಿಸಿದರೆ, ಎಲ್ಲಾ OSD ಗಳು ಮತ್ತು CRUSH ಅನ್ನು ಉಳಿಸಿದರೆ, ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ಇದು ಸಾಕಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಪ್ರತಿ ಮಾನಿಟರ್ ಸಂಪೂರ್ಣ ಕ್ಲಸ್ಟರ್ ಬಗ್ಗೆ ಕೆಲವು ಮೆಟಾಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂದು ತೀರ್ಮಾನವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ. ಈ ಮೆಟಾಡೇಟಾದ ಅತ್ಯಲ್ಪ ಪ್ರಮಾಣವು ಕ್ಲಸ್ಟರ್ ಗಾತ್ರದ ಮೇಲೆ ನಿರ್ಬಂಧಗಳನ್ನು ವಿಧಿಸುವುದಿಲ್ಲ, ಆದರೆ ಅವುಗಳ ಸುರಕ್ಷತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು ಫ್ಲ್ಯಾಶ್ ಡ್ರೈವ್ನಲ್ಲಿ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವ ಮೂಲಕ ಡಿಸ್ಕ್ ಉಳಿತಾಯವನ್ನು ಹೊರತುಪಡಿಸುತ್ತದೆ ಮತ್ತು ಮೂರು ನೋಡ್ಗಳಿಗಿಂತ ಕಡಿಮೆ ಇರುವ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೊರತುಪಡಿಸುತ್ತದೆ. ಐಚ್ಛಿಕ ವೈಶಿಷ್ಟ್ಯಗಳ ಬಗ್ಗೆ ಆಕ್ರಮಣಕಾರಿ ಡೆವಲಪರ್ ನೀತಿ. ಕನಿಷ್ಠೀಯತೆಯಿಂದ ದೂರವಿದೆ. ಮಟ್ಟದಲ್ಲಿ ದಸ್ತಾವೇಜೀಕರಣ: "ನಮ್ಮಲ್ಲಿರುವುದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಆದರೆ ತುಂಬಾ ಕಳಪೆಯಾಗಿದೆ." ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ ಸೇವೆಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಸಾಧ್ಯತೆಯಿದೆ, ಆದರೆ ದಸ್ತಾವೇಜನ್ನು ಈ ವಿಷಯದ ಬಗ್ಗೆ ತುಂಬಾ ಮೇಲ್ನೋಟಕ್ಕೆ ಇದೆ, ಆದ್ದರಿಂದ ಹೌದು ಅಲ್ಲ. ತುರ್ತು ಪರಿಸ್ಥಿತಿಯಿಂದ ಡೇಟಾ ಚೇತರಿಕೆಗೆ ಬಹುತೇಕ ಯಾವುದೇ ಅವಕಾಶವಿಲ್ಲ.
ಮುಂದಿನ ಕ್ರಮಕ್ಕಾಗಿ ಆಯ್ಕೆಗಳು: CEPH ಅನ್ನು ತ್ಯಜಿಸಿ ಮತ್ತು ನೀರಸ ಮಲ್ಟಿ-ಡಿಸ್ಕ್ btrfs (ಅಥವಾ xfs, zfs) ಬಳಸಿ, CEPH ಕುರಿತು ಹೊಸ ಮಾಹಿತಿಯನ್ನು ಕಲಿಯಿರಿ ಅದು ನಿರ್ದಿಷ್ಟ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಅದನ್ನು ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಸುಧಾರಿತ ತರಬೇತಿಯಾಗಿ ನಿಮ್ಮ ಸ್ವಂತ ಸಂಗ್ರಹಣೆಯನ್ನು ಬರೆಯಲು ಪ್ರಯತ್ನಿಸಿ.
ಮೂಲ: www.habr.com
