當前位置:首頁 » 存儲配置 » 開源對象存儲系統

開源對象存儲系統

發布時間: 2022-12-08 19:34:48

① 如何在CentOS 7.0上配置Ceph存儲

Ceph 是一個將數據存儲在單一分布式計算機集群上的開源軟體平台。當你計劃構建一個雲時,你首先需要決定如何實現你的存儲。開源的 Ceph 是紅帽原生技術之一,它基於稱為 RADOS 的對象存儲系統,用一組網關 API 表示塊、文件、和對象模式中的數據。由於它自身開源的特性,這種便攜存儲平台能在公有雲和私有雲上安裝和使用。Ceph 集群的拓撲結構是按照備份和信息分布設計的,這種內在設計能提供數據完整性。它的設計目標就是容錯、通過正確配置能運行於商業硬體和一些更高級的系統。

Ceph 能在任何 Linux 發行版上安裝,但為了能正確運行,它需要最近的內核以及其它最新的庫。在這篇指南中,我們會使用最小化安裝的 CentOS-7.0。

系統資源
**CEPH-STORAGE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.136.163
FQDN: ceph-storage.linoxide.com
**CEPH-NODE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.171.138
FQDN: ceph-node.linoxide.com

安裝前的配置
在安裝 Ceph 存儲之前,我們要在每個節點上完成一些步驟。第一件事情就是確保每個節點的網路已經配置好並且能相互訪問
配置 Hosts
要在每個節點上配置 hosts 條目,要像下面這樣打開默認的 hosts 配置文件(LCTT 譯註:或者做相應的 DNS 解析)。
#vi/etc/hosts
45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com
安裝 VMware 工具
工作環境是 VMWare 虛擬環境時,推薦你安裝它的 open VM 工具。你可以使用下面的命令安裝。
#yum install -y open-vm-tools
配置防火牆
如果你正在使用啟用了防火牆的限制性環境,確保在你的 Ceph 存儲管理節點和客戶端節點中開放了以下的埠。
你必須在你的 Admin Calamari 節點開放 80、2003、以及4505-4506 埠,並且允許通過 80 號埠訪問到 Ceph 或 Calamari 管理節點,以便你網路中的客戶端能訪問 Calamari web 用戶界面。
你可以使用下面的命令在 CentOS 7 中啟動並啟用防火牆。
#systemctl start firewalld
#systemctl enable firewalld
運行以下命令使 Admin Calamari 節點開放上面提到的埠。
# firewall-cmd --zone=public--add-port=80/tcp --permanent
# firewall-cmd --zone=public--add-port=2003/tcp --permanent
# firewall-cmd --zone=public--add-port=4505-4506/tcp --permanent
# firewall-cmd --reload
在 Ceph Monitor 節點,你要在防火牆中允許通過以下埠。
# firewall-cmd --zone=public--add-port=6789/tcp --permanent
然後允許以下默認埠列表,以便能和客戶端以及監控節點交互,並發送數據到其它 OSD。
# firewall-cmd --zone=public--add-port=6800-7300/tcp --permanent
如果你工作在非生產環境,建議你停用防火牆以及 SELinux 設置,在我們的測試環境中我們會停用防火牆以及 SELinux。
#systemctl stop firewalld
#systemctl disable firewalld
系統升級
現在升級你的系統並重啟使所需更改生效。
#yum update
#shutdown-r 0

設置 Ceph 用戶
現在我們會新建一個單獨的 sudo 用戶用於在每個節點安裝 ceph-deploy工具,並允許該用戶無密碼訪問每個節點,因為它需要在 Ceph 節點上安裝軟體和配置文件而不會有輸入密碼提示。
運行下面的命令在 ceph-storage 主機上新建有獨立 home 目錄的新用戶。
[root@ceph-storage ~]#useradd-d /home/ceph -m ceph
[root@ceph-storage ~]#passwd ceph
節點中新建的每個用戶都要有 sudo 許可權,你可以使用下面展示的命令賦予 sudo 許可權。
[root@ceph-storage ~]#echo"ceph ALL = (root) NOPASSWD:ALL"|sudotee/etc/sudoers.d/ceph
ceph ALL =(root) NOPASSWD:ALL
[root@ceph-storage ~]#sudochmod0440/etc/sudoers.d/ceph

設置 SSH 密鑰
現在我們會在 Ceph 管理節點生成 ssh 密鑰並把密鑰復制到每個 Ceph 集群節點。
在 ceph-node 運行下面的命令復制它的 ssh 密鑰到 ceph-storage。
[root@ceph-node ~]#ssh-keygen
Generatingpublic/private rsa key pair.
Enterfilein which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (emptyforno passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Yourpublic key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+
[root@ceph-node ~]#ssh--id ceph@ceph-storage

SSH key

配置 PID 數目
要配置 PID 數目的值,我們會使用下面的命令檢查默認的內核值。默認情況下,是一個小的最大線程數 32768。
如下圖所示通過編輯系統配置文件配置該值為一個更大的數。

更改 PID 值

配置管理節點伺服器
配置並驗證了所有網路後,我們現在使用 ceph 用戶安裝 ceph-deploy。通過打開文件檢查 hosts 條目(LCTT 譯註:你也可以用 DNS 解析來完成)。
#vim/etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138
運行下面的命令添加它的庫。
# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm

添加 Ceph 倉倉庫
或者創建一個新文件並更新 Ceph 庫參數,別忘了替換你當前的 Release 和版本號。
[root@ceph-storage ~]#vi/etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之後更新你的系統並安裝 ceph-deploy 軟體包。

安裝 ceph-deploy 軟體包
我們運行下面的命令以及 ceph-deploy 安裝命令來更新系統以及最新的 ceph 庫和其它軟體包。
#yum update -y &&yum install ceph-deploy -y

配置集群
使用下面的命令在 ceph 管理節點上新建一個目錄並進入新目錄,用於收集所有輸出文件和日誌。
#mkdir~/ceph-cluster
#cd~/ceph-cluster
# ceph-deploy new storage

設置 ceph 集群
如果成功執行了上面的命令,你會看到它新建了配置文件。
現在配置 Ceph 默認的配置文件,用任意編輯器打開它並在會影響你公共網路的 global 參數下面添加以下兩行。
#vim ceph.conf
osd pool defaultsize=1
public network =45.79.0.0/16

安裝 Ceph
現在我們准備在和 Ceph 集群關聯的每個節點上安裝 Ceph。我們使用下面的命令在 ceph-storage 和 ceph-node 上安裝 Ceph。
# ceph-deploy install ceph-node ceph-storage

安裝 ceph
處理所有所需倉庫和安裝所需軟體包會需要一些時間。
當兩個節點上的 ceph 安裝過程都完成後,我們下一步會通過在相同節點上運行以下命令創建監視器並收集密鑰。
# ceph-deploy mon create-initial

Ceph 初始化監視器

設置 OSD 和 OSD 守護進程
現在我們會設置磁碟存儲,首先運行下面的命令列出你所有可用的磁碟。
# ceph-deploy disk list ceph-storage
結果中會列出你存儲節點中使用的磁碟,你會用它們來創建 OSD。讓我們運行以下命令,請使用你的磁碟名稱。
# ceph-deploy disk zap storage:sda
# ceph-deploy disk zap storage:sdb
為了最後完成 OSD 配置,運行下面的命令配置日誌磁碟以及數據磁碟。
# ceph-deploy osd prepare storage:sdb:/dev/sda
# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有節點上運行相同的命令,它會清除你磁碟上的所有東西。之後為了集群能運轉起來,我們需要使用以下命令從 ceph 管理節點復制不同的密鑰和配置文件到所有相關節點。
# ceph-deploy admin ceph-node ceph-storage

測試 Ceph
我們快完成了 Ceph 集群設置,讓我們在 ceph 管理節點上運行下面的命令檢查正在運行的 ceph 狀態。
# ceph status
# ceph health
HEALTH_OK
如果你在 ceph status 中沒有看到任何錯誤信息,就意味著你成功地在 CentOS 7 上安裝了 ceph 存儲集群。

② 分布式存儲極簡藝術Minio解析

 MinIO 對象存儲系統是為海量數據存儲、人工智慧、大數據分析而設計,基於
Apache License v2.0 開源協議的對象存儲系統,它完全兼容 Amazon S3 介面,單個對象的最大可達 5TB,適合存儲海量圖片、視頻、日誌文件、備份數據和容器/虛擬機鏡像等。作為一個開源服務,MinIO 在設計上汲取了Glusterfs的相關經驗不教訓,系統復雜度上作了大量簡化,目前大小隻有40+M,部署只需要一個命令即可完成!另外,minio舍棄了傳統分布式存儲擴容所需要的遷移流程,採用聯盟模式添加集群的方式,極大簡化了擴容流程;除此之外,minio還具有糾刪編碼、比特位保護、單寫多讀(worm)、下面來依次簡要解析一下Mioio的特點及具體實現:

  元數據和數據一起存放在磁碟上。元數據以明文形式存放在元數據文件里(xl.json)。假定對象名字為key_name, 它所在桶的名字是bucket_name, disk路徑就是/disk,那麼存儲路徑就是:/disk/bucket_name/key_name,windows下C盤存放桶名為test,對象名為minio.exe示例如圖:

其中part.1是實際存儲數據(單機模式為原生數據,分布式為糾刪碼分塊),xl.json是如下所示的json字元串:

  在同一集群內,MinIO 自己會自勱生成若干糾刪組,用於分布存放桶數據。一個糾刪組中的一定數量的磁碟發生的故障(故障磁碟的數量小於等於校驗盤的數量),通過糾刪碼校驗演算法可以恢復出正確的數據。MinIO 集成了 Reed-Solomon 糾刪碼庫,MinIO 存儲對象數據時,首先把它分成若乾等長的片段(對於大對象,默認按 5MB 切片),然後每一個片段會糾刪演算法分成若干分片,包括數據分片不校驗分片,每個分片放置在一個糾刪組的某個節點上。對象的每一個數據分片、校驗分片都被「防比特位衰減」演算法所保護。

  MinIO 會根據對象名(類似於文件系統的全路徑名),使用 crc32 哈希演算法計算出一個整數。然後使用這個整數除以糾刪組的個數,得到一個余數。這個余數,可以作為糾刪組的序號,這樣就確定了這個對象所在的糾刪組。MinIO 採用 CRC32 哈希演算法,不 glusterfs 的Davies Meyer哈希演算法(性能、沖突概率不md4, md5相近)不一樣的是,CRC32演算法的哈希值分布較不均勻,但運算速度極快,高出 md4 數倍。相對於容量均衡,MinIO 更看重數據的寫入速度。

糾刪組如何配置?
官方文檔說明如下:

 也就是說糾刪組的總大小隻能從這7中情況中根據你提供的盤的個數(或者說路徑個數)來自動選取最大值的,我們 不能靈活地配置m+k糾刪存儲格式。但這樣說又不是很准確 ,因為雖然不能配置任意的m+k,但是在系統已經選取好擦除編碼集的的個數後(也就是m+k),可以使用storage class存儲類來自定義m和k的數量,默認是1:1的。
存儲類:
 MinIO支持配置兩種存儲類別,精簡冗餘類別和標准類別,默認是標准類別(1:1),可以在啟動MinIO伺服器之前使用設置的環境變數來定義這些類。使用環境變數定義每個存儲類別的數據和奇偶校驗磁碟後,您可以上傳對象時通過請求元數據欄位設置對象的存儲類別x-amz-storage-class 。然後,MinIO伺服器通過將對象保存在特定數量的數據和奇偶校驗磁碟中來兌現存儲類。具體配置和使用可以參考官方文檔 https://github.com/minio/minio/tree/master/docs/erasure/storage-class

傳統的擴展方式的劣勢
  通過增加節點來擴展單集群,一般需要進行數據均衡,否則群集內各存儲節點會因負載不均而出現新的瓶頸。除了數據均衡操作的時機這個問題以外,在均衡過程中一般需要仍存儲使用率高的節點吐使用率低的節點遷移數據。當集群擴容後,大量已經寫入的文件落點會出現改變,文件需要遷移到真實的落點。當存儲系統容量比較大時,則會發生大量的文件/對象進行遷移,遷移過程可能由於佔用大量資源而導致上層應用性能下降。而且當文件/對象遷移過程中,機器故障可能會導致一些意想不到的情冴,尤其是有大量業務的時候。當然針對此類問題,Gluterfs之類的文件系統有一些比較復雜的處理辦法。
不支持擴展優勢

③ 移動雲對象存儲EOS能幹什麼呀

對象存儲 EOS(Elastic Object Storage)是移動雲為客戶提供的一種海量空間的存儲產品,具備高性能、高可靠、安全、低成本等特性,通過標準的S3/Swift介面提供非結構化數據(圖片、音視頻、文本等格式文件)的存儲服務,滿足用戶在任何地方通過互聯網對數據進行管理和訪問的需求。
簡單來說,就是一個存儲工具。但是對比常見的存儲工具,移動雲的對象存儲 EOS具有以下幾個功能特點:
1.桶管理
支持桶(存放對象的容器)的創建、刪除,設置桶的訪問許可權、訪問規則,以及桶相關的功能配置。
2.生命周期管理
可設置桶級別的生命周期策略,實現文件定期的存儲類型轉換,以及歷史碎片文件刪除等功能。
3.文件管理
可進行文件上傳下載、設置文件的訪問許可權、生成共享訪問鏈接,支持多版本控制功能,允許文件多版本保存。
4.靜態網站託管
用戶可將靜態網頁上傳到桶內,配置後實現網站發布。簡化建站操作,降低網站運營維護成本。
5.防盜鏈
可以將數據的訪問許可權限制在某些IP段,防止數據被過度下載,保護數據安全。
6.監控
可展示對象存儲賬戶級別和桶級別兩種維度的使用量信息,方便用戶掌握資源使用情況。
7.子賬號
支持創建多個子賬號,實現數據訪問隔離,滿足訪客用戶臨時訪問對象存儲場景。
8.圖片處理
通過圖片處理服務,用戶可按需創建多種圖片樣式,將上傳到移動雲對象存儲的圖片進行多樣化處理。
9.跨域訪問
支持創建、修改和刪除跨域訪問規則,允許不同源域名訪問移動雲對象存儲資源,解決瀏覽器同源策略限制問題。
可以適用於網站託管、多媒體數據存儲和播放、數據備份等多個場景。
同時移動雲官網提供三種產品類型以供選擇,分別是標准存儲(適合存儲頻繁訪問的熱點數據)、低頻存儲(適合存儲不頻繁訪問,但在需要時也可快速訪問的數據)和歸檔存儲(適合需要長期保存的歸檔數據)。
正好看到移動雲官網有對象存儲免費試用一個月的活動,想試用的話可以試一下,活動好像長期有效,但僅限平台新用戶哦。

④ 對象存儲又是什麼鬼

對象存儲,也叫做基於對象的存儲,是用來描述解決和處理離散單元的方法的通用術語,這些離散單元被稱作為對象。
就像文件一樣,對象包含數據,但是和文件不同的是,對象在一個層結構中不會再有層級結構。每個對象都在一個被稱作存儲池的扁平地址空間的同一級別里,一個對象不會屬於另一個對象的下一級。
文件和對象都有與它們所包含的數據相關的元數據,但是對象是以擴展元數據為特徵的。每個對象都被分配一個唯一的標識符,允許一個伺服器或者最終用戶來檢索對象,而不必知道數據的物理地址。這種方法對於在雲計算環境中自動化和簡化數據存儲有幫助。
對象存儲經常被比作在一家高級餐廳代客停車。當一個顧客需要代客停車時,他就把鑰匙交給別人,換來一張收據。這個顧客不用知道他的車被停在哪,也不用知道在他用餐時服務員會把他的車移動多少次。在這個比喻中,一個存儲對象的唯一標識符就代表顧客的收據。[1]
由於對象存儲將遍布於很多節點且最新的數據並非總是可用,這將成為對象存儲最終一致性的問題。
所有的數據存儲都涉及到簡稱為CAP的三個元素:一致性、可用性和分區。
如果只是執行了寫操作從而改變了一個對象,但有人正在從另外的節點訪問這個對象。節點可能會在不同的物理位置,因為對象存儲支持很大的地理擴展。新用戶可能正在讀取對象,但那是舊版本。這就是對象存儲的最終一致性問題,此時並沒有及時的同步。
這將成為問題,特別是利用對象存儲做協同的時候,廠商為保證對象存儲的一致性做了很好的工作,像是Joyent以及他的Manta 存儲服務,一旦對象更改將不支持讀取舊的內容。你必須等待,但你所讀取的內容會是一致的。[2]

對象存儲數據遷移和訪問
企業對存儲的訴求有一定的延續性,但其訪問的介質不外乎是主機、PC、移動端以及應用,針對不同的訪問介質來看,面向對象存儲的解決方案也有所不同。然而如果應用軟體不支持HTTP下REST API的方式,需要以傳統文件伺服器協議的方式訪問,則需要在面向存儲對象前面加一個網關進行協議的轉換。
沒有了文件存儲系統中的NFS或CIFS來給應用提供數據,面向對象的存儲系統需要替換掉位於磁碟上的原始數據塊和應用可以理解的文件之間的這個抽象層。現在的面向對象的系統使用類似REST標準的API或者私有的API來告訴應用如何存儲和讀取對象標識。
總體而言,對於面向對象的存儲的操作的本質並不會改變。開源對象存儲系統O基本上就是POST,GET ,PUT和 DELETE操作,如果需要上傳大量的數據,則需要編寫一個腳本就可以實現。

⑤ 對象存儲系統底層基於什麼系統來存取數據

記得在一篇介紹對象存儲的文章開頭這樣寫道「那些沒有為資料庫或文件系統寫過代碼的上了年紀的程序員應該不太可能會讀這篇文章。畢竟,一般商業應用程序訪問其他數據類型的模式已經存在超過 40年了。」 言下之意,對象存儲代表了新時代下的新型數據結構類型,但是對象存儲的出現也與存儲發展的歷史密不可分。在Web2.0、雲和數字內容爆發的時代,類似數字視頻和移動網路之類事物的增長,產生了極大量的非結構化數據。存儲廠商也推出了新的基於對象的存儲系統,從而來提供更加簡單的管理和具有更佳擴展性的元數據格式。相比傳統存儲,對象存儲的關鍵優勢在於其簡單性。由於對象存儲不依賴於LUNs和卷,因此新的存儲容量可以通過簡單配置加入到運行系統中,實現橫向擴展( scale-out)。 對象存儲與Hadoop 雲存儲 目前,對象存儲的規模部署則由雲服務所引領,如亞馬遜 S3、Facebook。現在,無論成熟廠商還是新興廠商的對象存儲解決方案都已達到相當的成熟度,因而IT部門開始考慮如何在自己企業中實現對象存儲。除了面向對象的存儲,還有基於Hadoop的雲存儲。中國惠普雲計算事業部高級產品經理呂洪在近期的視頻訪談中提到:「對於那些要求訪問控制的應用,對象存儲系統是個不錯的選擇,而用雲進行大數據分析的則要考慮Hadoop。」 對象存儲系統可以在一個持久穩固且高度可用的系統中存儲任意的對象,且獨立於虛擬機實例之外。應用和用戶可以在對象存儲中使用簡單的API訪問數據;這些通常都基於REST架構,但是也有面向編程語言的界面。 同時,需要在雲端進行大數據分析的用戶則可以考慮Hadoop雲存儲,比如AWS提供了彈性Map Rece (EMR)。雲存儲選擇適用於廣泛的需求,但是要針對你的需求找到正確的存儲類型,也意味著要找到延遲、易用性、數據完整性和成本之間的合適的平衡點。 對象存儲數據遷移和訪問 企業對存儲的訴求有一定的延續性,但其訪問的介質不外乎是主機、PC、移動端以及應用,針對不同的訪問介質來看,面向對象存儲的解決方案也有所不同。比如微信,我們可以在微信中上傳和訪問照片、視頻等內容,這是一種面向對象數據的訪問和存儲方式;然而如果應用軟體不支持HTTP下REST API的方式,需要以傳統文件伺服器協議的方式訪問,則需要在面向存儲對象前面加一個網關進行協議的轉換。 沒有了文件存儲系統中的NFS或CIFS來給應用提供數據,面向對象的存儲系統需要替換掉位於磁碟上的原始數據塊和應用可以理解的文件之間的這個抽象層。現在的面向對象的系統使用類似REST標準的API或者私有的API來告訴應用如何存儲和讀取對象標識。 總體而言,對於面向對象的存儲的操作的本質並不會改變。呂洪介紹:「比如我們熟悉的開源對象存儲系統OpenStack Swift。基本上就是POST,GET ,PUT和 DELETE操作,如果你需要上傳大量的數據,則需要編寫一個腳本就可以實現。」 惠普的對象存儲創新 OpenStack Swift是一種開源的對象存儲系統,以一種既滿足了存儲數據服務等級要求且經濟的方式實現。從高可用性以及安全穩定的角度上看,目前開源Swift並不如傳統廠商做的好,但是卻可以通過標準的伺服器,集合Swift搭建出一個能用且經濟的方案。 但是傳統廠商有自己的優勢,從對象存儲的設計結構來看分為三層,底層硬體基礎架構用來承載數據,在此之上則是面向對象的管理軟體,也就是系統層,最頂層為介面層,也就是用戶通過何種方式來存取數據。呂洪表示:「在這三個層次上面惠普的解決方案都有涉及。」 眾所周知,惠普一直以來都在基於OpenStack進行持續研發,推出更加符合企業級用戶要求的解決方案。此外,惠普實驗室中也在基於ProLiant x86伺服器,力求為swift尋找到一種更經濟的承載方式。惠普基於OpenStack Swift構建的Helion Content Depot則是第一款集成化的完整對象存儲解決方案,針對橫向擴展的對象存儲,提供當今企業存儲系統所需的高度可擴展性、易管理性、恢復能力和安全性。 呂洪提到:「預期不久的將來,惠普則會正式推出專門針對大數據的面相對象存儲的伺服器阿波羅4510。」據了解,阿波羅4510的一個機櫃中可以提供5.4PB的容量,這是在目前整個行業中,單機櫃容量最大的存儲解決方案。 除此之外,惠普還提供了面相對象存儲的數據加密工作,一部分確保用戶的數據在傳輸過程中是加密的,另一方面也首創硬體的加密,確保對象存儲數據的安全性。

熱點內容
如何開mod伺服器 發布:2025-09-24 09:36:47 瀏覽:480
php並發編程 發布:2025-09-24 09:15:23 瀏覽:58
25系列編程器 發布:2025-09-24 08:19:23 瀏覽:277
小米6換機熱點密碼是多少 發布:2025-09-24 08:08:00 瀏覽:27
c語言10的階乘 發布:2025-09-24 08:07:49 瀏覽:355
南寧少兒編程培訓 發布:2025-09-24 07:16:35 瀏覽:324
非易失存儲 發布:2025-09-24 06:59:14 瀏覽:494
安卓備用機哪裡買比較便宜 發布:2025-09-24 06:44:53 瀏覽:583
360壓縮解壓文件丟失 發布:2025-09-24 06:44:44 瀏覽:931
內網ip怎麼訪問內網伺服器地址 發布:2025-09-24 06:20:20 瀏覽:951