1. 程式人生 > >管理ceph的pool(快照,回滾)

管理ceph的pool(快照,回滾)

pool是ceph儲存資料時的邏輯分割槽,它起到namespace的作用。其他分散式儲存系統,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每個pool包含一定數量的PG,PG裡的物件被對映到不同的OSD上,因此pool是分佈到整個叢集的。

pool有兩種方法增強資料的可用性,一種是副本(replicas),另一種是EC(erasure coding)。從Firefly版本起,EC功能引入。在EC裡,資料被打散成碎片,加密,然後進行分散式儲存。ceph由於其分散式能力,處理EC非常成功。pool在建立時可以設定這兩種方法之一,但不能同時設定兩者。

pool預設的副本數量是3,我們可以自己控制副本的數量。ceph的複製能力非常靈活,可以在任何時候更改這個引數。

在資料寫往pool時,遵循CRUSH的規則集,也就是說,寫往哪個位置以及副本數量,受規則集影響。這個規則集是pool的重要功能。比如我們可以通過規則集,定義一個pool使用SSD儲存,另一個pool使用SATA儲存,見前文描述。

pool也支援snapshot功能。可以執行ceph osd pool mksnap命令建立pool的快照,並且在必要的時候恢復它。還可以設定pool的擁有者屬性,從而進行訪問控制。

建立ceph pool的命令如下,它的引數包括pool名字、PG和PGP的數量。

$ ceph osd pool create mytest 128 128
pool 'mytest'
created

檢視pool有幾種方式,比如:

$ rados lspools
data
metadata
rbd
mytest

$ ceph osd lspools
0 data,1 metadata,2 rbd,3 mytest,

$ ceph osd dump |grep pool
pool 0 'data' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 43 flags hashpspool crash_replay_interval 45
stripe_width 0 pool 1 'metadata' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 41 flags hashpspool stripe_width 0 pool 2 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 45 flags hashpspool stripe_width 0 pool 3 'mytest' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 58 flags hashpspool stripe_width 0

毫無疑問ceph osd dump輸出的資訊最詳盡,包括pool ID、副本數量、CRUSH規則集、PG和PGP數量等。

可以調整剛建立的pool的副本數量:

$ ceph osd pool set mytest size 2
set pool 3 size to 2

如下命令演示ceph的snapshot功能。我們往pool裡寫入一個物件,然後獲取pool的快照,接著刪除物件,最後從快照裡恢復資料。

# 寫入一個檔案
$ rados -p mytest put testfile /etc/hosts

# 檢視這個檔案
$ rados -p mytest ls
testfile

# 建立pool的快照
$ rados mksnap snapshot001 -p mytest
created pool mytest snap snapshot001

# 檢視pool的快照
$ rados lssnap -p mytest
1 snapshot001 2015.11.30 09:50:38
1 snaps

# 刪除檔案
$ rados -p mytest rm testfile

# 從快照裡回滾檔案
$ rados rollback -p mytest testfile snapshot001
rolled back pool mytest to snapshot snapshot001

# 確認結果
$ rados -p mytest ls
testfile

刪除pool會同步刪除所有快照。在刪除pool後,需要刪除pool的CRUSH規則集,假如你手工建立過它們。同樣也需刪除這個pool的授權使用者。

$ ceph osd pool delete mytest mytest --yes-i-really-really-mean-it
pool 'mytest' removed

上述刪除命令,pool名字輸入兩次,並且帶上–yes-i-really-really-mean-it引數,感覺多此一舉的說。

相關推薦

管理ceph的pool(快照,)

pool是ceph儲存資料時的邏輯分割槽,它起到namespace的作用。其他分散式儲存系統,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每個pool包含一定數量的PG,PG裡的物件被對映到不同的OSD上,因此pool是分佈到整個

Spring管理事務預設的異常是什麼?

問題: Spring管理事務預設(即沒有rollBackFor的情況下)可以回滾的異常是什麼? 回答: RuntimeException或者Error。 丟擲執行時異常,是否回滾?Yes @Trans

springmvc mybatis 聲明式事務管理失效,(checked)捕捉異常,傳輸錯誤信息

title HR 業務邏輯 mybatis分頁 能力 csdn before 取值 request 一、知識點及問題 後端框架: Spring 、Spring

spring boot開啟事務管理,使用事務的機制,使兩條插入語句一致

value nbsp tcl true 管理 配置 AI let dao spring boot 事務管理,使用事務的回滾機制 1:配置事務管理 在springboot 啟動類中添加 @EnableTransactionManagement //開啟事務管

MySQL管理之道-筆記-undo log日誌物理文件空間回收

共享 想要 req .cn directory 文件 釋放 mysql5 初始化 undo log回滾日誌物理文件空間回收MySQL5.6之前undo log在ibdata1文件裏,ibdata1文件會越來越大,想要回收,必須全庫導出,刪除data目錄,再重新初始化數據庫,

基於ceph快照快速openstack上的虛擬機

ecc ble int tty key var Opens -a keyword 查看虛擬機ID 1 2 [root@node1 ~]# nova list --all | grep wyl | dc828fed-1c4f-4e5d-ae84-795a0e71eec

SVN版本管理(SmartSVN)

發現自己或其他同事提交錯程式碼後,專案執行不起來,存在錯誤,這時候需要把錯誤的程式碼回滾。 通過SmartSVN操作。 一、未提交到版本庫的回滾,即撤銷修改 1、選擇需要撤銷修改的檔案 2、執行撤銷 二、提交到版本庫後的回滾 1、checkout最新版本的原始碼 2、在SmartS

spring事務管理,基於xml配置完成事務;spring中資料庫表中欄位名和pojo中屬性名不一致時候,實現RowMapper介面手動封裝

宣告使用JDK8,spring5.0.7, 測試說明: service 層 宣告介面進行轉賬,從A轉賬B ,然後對AB 進行更新操作,在事務中對find方法開啟 只讀許可權,無法進行更新操作,造成事務回滾進行測試事務; 主要測試方法:* void tra

使用@Transactional註解 事務管理不起作用 沒

資料庫引擎要支援事務       mysql資料庫,當建立表時,注意進行資料庫引擎的選擇,      使用支援事務的引擎,比如innodb,如果是myisam,事務是不起作用的  

Spring 事務手動: 用於事務管理的業務方法中使用了try...catch...的事務

在使用Spring 事務(@Transactional())時,被事務管理的業務類方法中如果使用try...catch...來捕獲異常的話,如果出現異常,事務不會回滾,這個時候我們可以手動回滾事務.如下: //假設這是被事務管理的service類中的一個方法

Linux伺服器配置與管理系列---解決依賴關係破壞---yum

軟體包依賴關係破壞如何解決 軟體包依賴關係破壞解決方案 1.背景     今天準備搭建一個DNS伺服器,奈何在安裝bind系列軟體時候報錯,提示軟體包依賴關係破壞,不能安裝。思考了一下,找到出錯的原因:以前我用的是網易的CentOS源

Spring事務管理只對出現執行期異常進行

使用spring難免要用到spring的事務管理,要用事務管理又會很自然的選擇宣告式的事務管理,在spring的文件中說道,spring宣告式事務管理預設對非檢查型異常和執行時異常進行事務回滾,而對檢查型異常則不進行回滾操作。那麼什麼是檢查型異常什麼又是非檢查型異常呢?最簡

SSM框架事務管理不起作用,不的原因之一

如果當框架搭建完成,並反覆確認框架的配置檔案、事務宣告都沒有問題,但就是不會滾。 原配置檔案如下: springmvc的配置檔案 <context:component-scan base-package="com.dncps.*" />

mysql事務管理及spring宣告式事務中主動異常丟擲使資料庫

原文: http://www.cnblogs.com/wanglonghai/p/4866512.html   mysql的引擎常用的有兩個,一個MyISAM,另一個是InnoDB,mysql預設的為MyISAM,而InnoDB才是支援事務的。所以一般需要修改下

spring中配置hibernate事務管理,出錯時事物不

今天進行了spring整合hibernate,進行事務管理。出現了事務不回滾。檢查了好多遍,業務邏輯和配置檔案都沒有出錯,但是事務依舊不回滾,很是鬱悶。在網上查了很多資料。轉載一位博主的文章,挺不錯。 http://blog.csdn.net/u011622226/arti

spring 事務管理——之service層(事務控制層)程式碼互調

spring事務管理相關的文章已經有很多了,本人寫此文章主要為自己的實驗做一個記錄,年紀大了,記性不好 首先先貼幾個地址,有興趣研讀的同學可以參考一下: 初級使用: 初級容易犯的錯:事務中catch異常 官方介紹: 預設回滾配置實驗: 以上幾個地址是從不同的角度來

Spring事務管理——(rollback-for)控制

探討spring事務控制中,異常觸發事務回滾原理。文章進行了6種情況下的Spring事務是否回滾。  以下程式碼都是基於Spring與Mybatis整合,使用Spring宣告式事務配置事務方法。 1.不捕獲異常(一般處理方式) 程式碼,其中contentMappg

重灌系統、快照備份還原、升級降級配置

一般而言,我們站長在選擇海外主機、VPS伺服器等產品的時候,尤其是非通用面板的時候需要用到中文教程,如果是中文面板基本上我們就算從上到下,從左到右的一個個過一遍也應該能找到需要解決的問題,所以在老左部落格中並沒有多少分享國內主機面板的教學內容。比如國內很多商家相繼推出的雲

Spring如何設定讓事務自動提交和?Spring兩種事務管理方式的配置及使用

1,我們要明確,Spring如何設定讓事務自動提交和回滾?        ①如何自動提交?           理論上,可以通過對DataSource如下設定,讓事務自動提交 <!-- 配置資料來源 --> <beanid="dataSour

基於ceph快照快速openstack上的虛擬機器

作者:吳業亮 ceph的基本的特性之一,就是支援rbd的snapshot和clone功能。Ceph都可以完成秒級別的快照,其實現的基本原理是基於物件COW(copy-on-write)機制。 檢視虛擬機器ID [[email prot