標籤:style blog http io ar color os 使用 sp
Ceph配置參數(一)
6、KEYVALUESTORE CONFIG REFERENCEhttp://ceph.com/docs/master/rados/configuration/keyvaluestore-config-ref/KeyValueStore is an alternative OSD backend compared to FileStore. Currently, it uses LevelDB as backend. KeyValueStore doesn’t need journal device. Each operation will flush into the backend directly.
- KeyValueStore所用的後端(leveldb):keyvaluestore backend
(1)隊列
- 隊列上可以儲存的最大運算元:keyvaluestore queue max ops
- 隊列上可以儲存的最大btye數:keyvaluestore queue max bytes
(2)線程
- 並行線程數:keyvaluestore op threads
- 檔案操作線程逾時秒數:keyvaluestore op thread timeout
- 提交一個操作多少秒都可以取消:keyvaluestore op thread suicide timeout
(3)MISC
- 條帶大小:keyvaluestore default strip size
註:每個對象會分割成多個鍵值對儲存在後端
- header cache大小:keyvaluestore header cache size
註:存的東西和檔案系統中的inode差不多
7、OSD CONFIG REFERENCEhttp://ceph.com/docs/master/rados/configuration/osd-config-ref/(1)通用設定
註:一個uuid作用於一個OSD Daemon,一個fsid作用於整個cluster,這兩個不一樣
註:實際底層裝置掛載的地方e.g. /var/lib/ceph/osd/$cluster-$id
- 一次寫入最大的MB數(預設90):osd max write size
- 在記憶體中允許儲存的最大用戶端資料資訊(預設500MB):osd client message size cap
- RADOS class外掛程式地址($libdir/rados-classes):osd class dir
(2)檔案系統設定
- 組建檔案系統的類型:osd mkfs options {fs-type}
註:對XFS預設-f -i 2048,其他類型無預設,e.g. osd mkfs options xfs = -f -d agcount=24
- 掛載選項:osd mount options {fs-type}
註:對XFS預設rw,noatime,inode64,其他類型rw, noatime,e.g. osd mount options xfs = rw, noatime, inode64, nobarrier, logbufs=8 其中noatime表示取消讀檔案時記錄最後一次讀取的時間(access time),節省時間,inode64表示inode數有64位(近乎無限制)現在的很多檔案系統會在資料提交時強制底層裝置重新整理cache,避免資料丟失,稱為write barriers。但是,其實我們資料庫伺服器底層存放裝置要麼採用RAID卡,RAID卡本身的電池可以掉電保護;要麼採用Flash卡,它也有自我保 護機制,保證資料不會丟失。所以我們可以安全的使用nobarrier掛載檔案系統。(3)日誌設定
註:建議使用硬碟或SSD單獨存放,預設/var/lib/ceph/osd/$cluster-$id/journal
- 日誌大小(預設5120MB,即5G):osd journal size
註:如果是0表示整個塊裝置都用來存日誌,建議初始設為1G,至少為2 * (expected throughput * filestore max sync interval),其中throughput 為磁碟轉速和網路速率的最小值,filestore max sync interval參數在上文filestore參數設定中有解釋。(4)SCRUBBING scrubbing相當於一個周期性檢查工作,保證資料完整性,對象沒有丟失,輕量級的scrubbing每天進行,它檢查對象的大小和屬性,深度scrubbing每周進行,它讀取資料並進行校正和來保證資料的完整性。
- 一個Ceph OSD Daemon內能夠同時進行的scrubbing操作(預設1):osd max scrubs
- scrub線程逾時(預設60秒):osd scrub thread timeout
- 終止一個scrub最終線程(finalize thread)的逾時(預設600秒):osd scrub finalize thread timeout
- 最大負載(超過這個負載scrub不進行):osd scrub load threshold
- 最小scrub間隔(負載低時進行,預設每天):osd scrub min interval
- 最大scrub間隔(不管負載如何,預設每周):osd scrub max interval
- 深層scrub間隔(預設每周):osd deep scrub interval
- 深層scrub時的讀大小(預設512K):osd deep scrub stride
(5)操作
- Ceph OSD Daemon 並行線程數(0表示關閉多線程,預設是2):osd op threads
- 用戶端操作的優先順序(預設63):osd client op priority
- 修複操作的優先順序(預設10):osd recovery op priority
- 線程逾時(預設30秒):osd op thread timeout
- 一個操作變成 complaint worthy (不造啥意思)的逾時(預設30s):osd op complaint time
- 後端磁碟線程數(如scrub操作和snap trimming操作。預設為1):osd disk threads
- 磁碟線程優先順序(預設不設定)類:osd disk thread ioprio class
註:idle-磁碟線程優先順序比任何一個OSD線程都低,這有助於在一個繁忙的OSD上不讓他scrub;rt-磁碟線程優先順序比任何一個OSD線程都高,如果scrub比較需要。這個參數要將核心設定為CFQ調度才有用。
- 磁碟線程優先順序(預設是-1):osd disk thread ioprio priority
註:這個參數要個上面那個參數一起使用,有0-7(最低)個層級,-1表示不設定,單獨設定每個OSD scrub的優先順序,擁塞或存在IO競爭是可以用這個,這個參數要將核心設定為CFQ調度才有用。
- 可以跟蹤到的已完成的運算元量(預設20):osd op history size
- 最老可以跟蹤到的已完成的操作(預設600):osd op history duration
- 一次顯示多少操作的log(預設5):osd op log threshold
(6)BACKFILLING 當新加入OSD或刪除OSD時,部分PG會遷移已達到新的平衡,這一行為會導致效能下降,為避免效能下降,可以設定遷移為backfill操作,並設定它的優先順序低於正常讀寫。(backfill我猜是先標誌一下,等閒置時候在實際操作)
- 一個OSD啟動並執行最大的backfill運算元(預設10):osd max backfills
- 每一個backfill掃描的最小對象數(預設64):osd backfill scan min
- 每一個backfill掃描的最大對象數(預設512):osd backfill scan max
- 如果OSD Daemon的使用率高於這個值測不響應backfills請求(預設0.85):osd backfill full ratio
- backfill請求稍候再試(預設10秒):osd backfill retry interval
(7)OSD MAP osd map記錄著OSD所有資訊,包括節點的改變,加入和退出等等資訊,隨著叢集的運行,這個map會越變越大,一下一些配置保證了在map變大的情況下叢集仍然能夠運行良好。
- 開啟刪除Map中的重複內容(預設是true):osd map dedup
- map的cache大小(預設500MB):osd map cache size
- OSD進程運行時map在記憶體中的cache大小(預設50MB):osd map cache bl size
- OSD進程運行時map在記憶體中的cache的增量大小:osd map cache bl inc size
- 每個MOSDMap訊息的最大的映射項:osd map message max
(8)RECOVERY
- 延遲多少秒開始修複對象(預設0):osd recovery delay start
- 每個OSD一次可以接受的修複請求(預設15):osd recovery max active
註:增大會加速修複但同時也會增加叢集負載
- 修複最大的chunk大小:osd recovery max chunk
- 修複過程的線程數量(預設1):osd recovery threads
- 修複線程逾時(預設30s):osd recovery thread timeout
- 在恢複過程中保留複製重疊(應始終設定為true):osd recover clone overlap
(9)雜項
- snap trim線程的逾時設定(預設1小時):osd snap trim thread timeout
- 後台log線程的逾時設定(預設1小時):osd backlog thread timeout
- 預設通知逾時(預設30s):osd default notify timeout
- 檢查記錄檔是否損壞(代價大,預設false):osd check for log corruption
- 命令線程逾時設定(預設10分鐘):osd command thread timeout
- 返回最大的丟失對象數(預設256):osd command max records
- 將tmap用作omap(預設false):osd auto upgrade tmap
- 只將tmap用作調試(預設false):osd tmapput sets users tmap
- 不刪減log空間,多用磁碟空間(預設false):osd preserve trimmed log
Ceph配置參數(二)