天天看點

ceph擴容完整步驟

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

<code>ceph擴容</code>

<code>在fuel openstack裡挂載存儲增加OSD </code>

<code>環境介紹:</code>

<code>單獨部署了ceph節點,挂載後端存儲,增加osd節點,擴容ceph</code>

<code>擴容前的容量</code>

<code>root@node-92:~</code><code># ceph -s</code>

<code>    </code><code>cluster 32bf310c-358b-47bc-afc7-25b961477c84</code>

<code>     </code><code>health HEALTH_WARN</code>

<code>            </code><code>too many PGs per OSD (480 &gt; max 300)</code>

<code>     </code><code>monmap e1: 1 mons at {node-99=192.168.1.4:6789</code><code>/0</code><code>}</code>

<code>            </code><code>election epoch 1, quorum 0 node-99</code>

<code>     </code><code>osdmap e313: 4 osds: 4 up, 4 </code><code>in</code>

<code>      </code><code>pgmap v34509: 640 pgs, 10 pools, 127 MB data, 86 objects</code>

<code>            </code><code>8851 MB used, 2542 GB / 2653 GB avail</code>

<code>                 </code><code>640 active+clean</code>

<code>root@node-92:~</code><code># </code>

<code>建立 OSD 。如果未指定 UUID , OSD 啟動時會自動生成一個。下列指令會輸出 OSD 号,後續步驟你會</code>

<code>用到。</code>

<code>ceph osd create [{uuid} [{</code><code>id</code><code>}]]    可以直接執行 不需要帶 UUUID  和  ID   在mon_host節點執行</code>

<code>這個指令</code>

<code>root@node-99:~</code><code># cat /etc/ceph/ceph.conf </code>

<code>[global]</code>

<code>fsid = 32bf310c-358b-47bc-afc7-25b961477c84        可以通過這個配置看到mon_host</code>

<code>mon_initial_members = node-99</code>

<code>mon_host = 192.168.1.4</code>

<code>root@node-99:~</code><code># ceph osd create</code>

<code>4</code>

<code>root@node-99:~</code><code>#    </code>

<code>4這個數字是自動生成的     我前面已經用了  osd.0  osd.1  osd.2  osd.3                       </code>

<code>登入需要建立挂載存儲建立OSD的主機</code>

<code>root@node-99:~</code><code># ssh node-92</code>

<code>Warning: Permanently added </code><code>'node-92,192.168.0.9'</code> <code>(ECDSA) to the list of known hosts.</code>

<code>Welcome to Ubuntu 14.04.4 LTS (GNU</code><code>/Linux</code> <code>3.13.0-92-generic x86_64)</code>

<code> </code><code>* Documentation:  https:</code><code>//help</code><code>.ubuntu.com/                                   </code>

<code>Last login: Tue Jun  6 17:24:08 2017 from 192.168.0.6</code>

<code>我這裡是node-92   具體看你自己的情況</code>

<code>root@node-92:~</code><code># mkdir /var/lib/ceph/osd/ceph-4</code>

<code>root@node-92:~</code><code>#                                                         </code>

<code>建立挂載目錄  注意路徑和ceph-4  我們生成的是 4</code>

<code>root@node-92:~</code><code># mount -o user_xattr /dev/mapper/mpath1-part1 /var/lib/ceph/osd/ceph-4</code>

<code>挂載存儲盤到ceph-4,請挂載前先格式化存儲盤,建議  ext4  參考指令:mkfs.ext4  </code><code>/dev/mapper/</code>

<code>mpath1-part1</code>

<code>root@node-92:~</code><code># ceph-osd -i 4 --mkfs  --mkkey</code>

<code>初始化osd資料目錄</code>

<code>root@node-92:~</code><code># ceph auth add osd.4 osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/</code>

<code>ceph-4</code><code>/keyring</code> 

<code>added key </code><code>for</code> <code>osd.4        這是執行結果和上面不是同一行</code>

<code>root@node-92:~</code><code># ^C</code>

<code>注冊 OSD 認證密鑰</code>

<code>root@node-92:~</code><code># ceph osd crush add osd.4 1.0 host=node-92</code>

<code>把 OSD 加入 CRUSH 圖,這樣它才開始收資料。   osd.4是名字   1.0是weight   </code>

<code>root@node-92:~</code><code># start ceph-osd id=4</code>

<code>自動osd.4  注意指令格式  這是ubuntu的格式</code>

<code>^Croot@node-92:~</code><code># ceph -s</code>

<code>            </code><code>10 pgs stuck unclean</code>

<code>            </code><code>recovery 2</code><code>/258</code> <code>objects degraded (0.775%)</code>

<code>            </code><code>recovery 2</code><code>/258</code> <code>objects misplaced (0.775%)</code>

<code>            </code><code>too many PGs per OSD (382 &gt; max 300)</code>

<code>     </code><code>osdmap e320: 5 osds: 5 up, 5 </code><code>in</code><code>; 10 remapped pgs</code>

<code>      </code><code>pgmap v34544: 640 pgs, 10 pools, 127 MB data, 86 objects</code>

<code>            </code><code>11112 MB used, 5410 GB / 5677 GB avail</code>

<code>            </code><code>2</code><code>/258</code> <code>objects degraded (0.775%)</code>

<code>            </code><code>2</code><code>/258</code> <code>objects misplaced (0.775%)</code>

<code>                 </code><code>630 active+clean</code>

<code>                   </code><code>5 active+remapped</code>

<code>                   </code><code>5 active</code>

<code>和前面做對比。擴容成功。</code>

<code>重點請注意:</code>

<code>在沒有重新開機系統前,一切正常,重新開機系統後,會出錯。需要設定自動挂載OSD  和自動OSD  參考如下</code>

<code>root@node-92:~</code><code># echo "mount -o user_xattr /dev/mapper/mpath1-part1 /var/lib/ceph/osd/ceph-4</code>

<code>" &gt;&gt; </code><code>/etc/rc</code><code>.</code><code>local</code>

<code>root@node-92:~</code><code># echo "start ceph-osd id=4" &gt;&gt; /etc/rc.local</code>

<code>重新開機系統測試下:</code>

<code>root@node-92:~</code><code># init 6</code>

<code>root@node-92:~</code><code># Connection to node-92 closed by remote host.</code>

<code>Connection to node-92 closed.</code>

<code>root@node-99:~</code><code>#</code>

本文轉自 am2012 51CTO部落格,原文連結:http://blog.51cto.com/goome/1953529