主頁 >  其他 > 深入理解 DeepSea 和 Salt 部署工具 - Storage6

深入理解 DeepSea 和 Salt 部署工具 - Storage6

2020-09-17 12:20:21 其他

學習 SUSE Storage 系列文章

(1)SUSE Storage6 實驗環境搭建詳細步驟 - Win10 + VMware WorkStation

(2)SUSE Linux Enterprise 15 SP1 系統安裝

(3)SUSE Ceph 快速部署 - Storage6

(4)SUSE Ceph 增加節點、減少節點、 洗掉OSD磁盤等操作 - Storage6

(5)深入理解 DeepSea 和 Salt 部署工具 - Storage6


 

首先我們通過前幾篇文章,已經搭建了一套完整的Ceph集群,對使用salt工具自動化搭建集群有所了解,下面我們就對部署方式進行詳解

SUSE Enterprise Storage 部署方式

storage4 采用的方式:

  • ceph-deploy 工具,標準的ceph腳本部署,適用于中小型存盤集群
  • crowbar工具,部署SUSE Openstack的標準工具

storage5/6 采用方式:

  • DeepSea (Salt),輕量級,敏捷性,靈活性,彈性部署

     過去我們的部署方式采用社區的方式ceph-deploy或 crowbar 工具搭建,這2種工具部署都有一定局限性,不適合大型存盤集群部署,敏捷性、靈活性太差,因此從2018年開始,SUSE Enterprise Storage 5 棄用 ceph-deploy / crowbar 群集部署工具 ,推出DeepSea方式進行部署,該方式更加輕量級,高速互通,敏捷性,靈活性,適用于各種場景部署集群系統,也是Ceph產品部署方式的趨勢,

一、DeepSea 簡介

      DeepSea 旨在節省管理員的時間,讓他們自信地對 Ceph 群集執行復雜操作,Ceph 是一款高度可配置的軟體解決方案,它提高了系統管理員的自由度和職責履行能力,最低的 Ceph 設定能夠很好地滿足演示目的,但無法展示 Ceph 在處理大量節點時可體現的卓越功能,DeepSea 會收集并儲存有關單臺服務器的相關資料,例如地址和設備名稱,對于諸如 Ceph 的分布式儲存系統,可能需要收集并儲存數百個這樣的專案,收集資訊并手動將資料輸入到配置管理工具的程序非常耗費精力,并且容易出錯,準備服務器、收集配置資訊以及配置和部署 Ceph 所需執行的步驟大致相同,但是,這種做法無法解決管理獨立功能的需求,在日常操作中,必須做到不厭其煩地將硬體添加到給定的功能,以及從容地去除硬體,DeepSea 通過以下策略解決了這些需求:DeepSea 可將管理員的多項決策合并到單個檔案中,這些決策包括群集指派、角色指派和組態檔指派,此外,DeepSea 會收集各組任務以組成一個簡單的目標,每個目標就是一個階段

 關于DeepSea官方資料:

GitHub 鏈接: https://github.com/SUSE/DeepSea/wiki

  二、SaltStack 簡介

 

SaltStack 是一個服務器基礎架構集中化管理平臺,具備配置管理、遠程執行、監控等功能,一般可以理解為簡化版的puppet和加強版的func,SaltStack 基于Python語言實作,結合輕量級訊息佇列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、 python-msgpack和PyYAML等)構建,

通過部署SaltStack環境,我們可以在成千上萬臺服務器上做到批量執行命令,根據不同業務特性進行配置集中化管理、分發檔案、采集服務器資料、作業系統基礎及軟體包管理等,SaltStack是運維人員提高作業效率、規范業務配置與操作的利器,

特性:

(1)部署簡單、方便;

(2)支持大部分UNIX/Linux及Windows環境;

(3)主從集中化管理;

(4)配置簡單、功能強大、擴展性強;

(5)主控端(master)和被控端(minion)基于證書認證,安全可靠;

(6)支持API及自定義模塊,可通過Python輕松擴展,

SaltStack: Pillar 和 Grains 詳解

 

SatlStack 遠程執行

 1、遠程執行

  • 目標 (Targeting)
  • 模塊 (Module)
  • 回傳 (return)

2、目標

(1)和Minion ID 有關,需要使用Minion ID

  • 通配符
  • 正則運算式
  • 串列

通配符方式:

# salt 'node00[1-3]'.example.com cmd.run 'w'node002.example.com:     13:06:12 up  4:05,  0 users,  load average: 0.28, 0.09, 0.02    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATnode001.example.com:     13:06:12 up  4:05,  0 users,  load average: 0.23, 0.13, 0.05    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATnode003.example.com:     13:06:12 up  4:05,  0 users,  load average: 0.24, 0.09, 0.02    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

正則運算式

# salt -E 'node(001|002).example.com' test.ping        node002.example.com:    Truenode001.example.com:    True

(2)和Minion ID 無關,不涉及到Minion ID

  • 子網 /  IP 地址
  • Grains
  • Pillar
  • Compound matchers (復合匹配)
  • Node groups (節點組)
  • Batching execution (批處理執行)

Grains 方式,OS是SUSE

# salt -G 'os:SUSE' test.ping node001.example.com:    Truenode002.example.com:    Truenode003.example.com:    Truenode004.example.com:    Trueadmin.example.com:    True

獲取 Pillar ,然后指定pillar方式

# salt 'admin*' pillar.items admin.example.com:    ----------    available_roles:        - storage        - admin        - mon        - mds        - mgr

.....

    roles:
        - master
        - admin
        - prometheus
        - grafana
    time_server:
        admin.example.com

# salt -I 'roles:grafana' test.ping             
admin.example.com:
    True

3、模塊詳解

1000+ 的模塊,目前在不斷增加中 , saltstack模塊鏈接 

admin:~ # salt 'node001*' network.arp  node001.example.com:    ----------    00:0c:29:33:70:2d:        192.168.2.42    00:0c:29:33:70:37:        192.168.3.42    00:0c:29:ae:44:51:        172.200.50.39    00:0c:29:ae:44:5b:        192.168.2.39    00:0c:29:d3:ba:15:        192.168.2.41    00:0c:29:d3:ba:1f:        192.168.3.41    00:0c:29:e0:5c:8c:        192.168.2.43    00:0c:29:e0:5c:96:        192.168.3.43

 

admin:~ # salt 'node001*' network.interface eth1 node001.example.com:    |_      ----------      address:          192.168.2.40      broadcast:          192.168.2.255      label:          eth1      netmask:          255.255.255.0

三、配置和自定義

policy.cfg 檔案

/srv/pillar/ceph/proposals/policy.cfg 組態檔用于確定單個群集節點的角色,例如,哪個節點充當 OSD,或哪個節點充當監視器節點,請編輯 policy.cfg ,以反映所需的群集設定,段落采用任意順序,但所包含行的內容將重寫前面行的內容中匹配的密鑰,

1、policy.cfg 的模板

  • 可以在 /usr/share/doc/packages/deepsea/examples/ 目錄中找到完整策略檔案的多個示例,
  • 一般我們選擇基于角色定義的模板
# ll /usr/share/doc/packages/deepsea/examples/total 12-rw-r--r-- 1 root root 329 Aug  9 16:00 policy.cfg-generic-rw-r--r-- 1 root root 489 Aug  9 16:00 policy.cfg-regex-rw-r--r-- 1 root root 577 Aug  9 16:00 policy.cfg-rolebased

2、群集指派

要包含所有受控端,請添加以下幾行:

cluster-ceph/cluster/*.sls

要將特定的受控端加入白名單,請運行以下命令

cluster-ceph/cluster/abc.domain.sls

要將一組受控端加入白名單,可以使用通配符:

cluster-ceph/cluster/mon*.sls

要將受控端加入黑名單,可將其設定為 unassigned

cluster-unassigned/cluster/client*.sls 

 3、policy.cfg 示例

下面是一個基本 policy.cfg 檔案的示例:

 1 vim /srv/pillar/ceph/proposals/policy.cfg  2  3 ## Cluster Assignment 4 cluster-ceph/cluster/*.sls 5  6 ## Roles 7 # ADMIN 8 role-master/cluster/admin*.sls 9 role-admin/cluster/admin*.sls10 11 # Monitoring12 role-prometheus/cluster/admin*.sls13 role-grafana/cluster/admin*.sls14 15 # MON16 role-mon/cluster/node00[1-3]*.sls17 18 # MGR (mgrs are usually colocated with mons)19 role-mgr/cluster/node00[1-3]*.sls20 21 # COMMON22 config/stack/default/global.yml23 config/stack/default/ceph/cluster.yml24 25 # Storage26 role-storage/cluster/node00*.sls27 28 # MDS29 role-mds/cluster/node001*.sls30 31 # IGW32 role-igw/stack/default/ceph/minions/node002*.yml33 role-igw/cluster/node002*.sls34 35 # RGW36 role-rgw/cluster/node00[3-4]*.sls

(1)第3-4行:

  • 指示在 Ceph 群集中包含所有受控端,如果您不想在 Ceph 群集中包含某些受控端,請使用:
cluster-unassigned/cluster/*.slscluster-ceph/cluster/node00*.sls
  • 將所有受控端標記為未指派,
  • 覆寫與“node00*.sls”匹配的受控端,并將其指派到 Ceph 群集,

(2)第7-9行

  • 指定主機名為admin的主機節點具有"master" 和 “admin” 角色

(3)第11-13行

  • 指定要部署 Dashboard 可視化界面的節點

(4)第15-16行

  • 將受控節點 node001 node002 node003 設定為MON 節點

(5)第18-19

  • 將受控節點 node001 node002 node003 設定為 MGR 節點 ,該設定必須跟隨 MON 設定一樣

 (6)第21-23行

  • 表示接受 fsid 和 public_network 等通用配置引數的默認值

 (7)第25-36行

  • 受控端 “node00*” 將具有 storage  IGW RGW MDS 角色

四、DeepSea 部署方式

 通過架構圖,我們可以清楚的了解到,安裝 Storage6 時只要管理節點安裝 satl-master 和 salt-minion,其他OSD節點安裝 salt-minion,并且所有的 minion 都指向salt-master IP地址或主機名(推薦使用public網段地址),然后執行deepsea 的4個階段命令 “salt-run state.orch ceph.stage.X” 就可以輕松的搭建完成,

DeepSea階段說明

階段 0 — 準備:在此階段,將應用全部所需的更新,并且可能會重引導您的系統,

階段 1 — 發現:在此階段,通過Salt在客戶端安裝的salt minion, 將檢測群集中的所有硬體, 并收集 Ceph 配置所需的資訊,

階段 2 — 配置:您需要以特定的格式準備配置資料,(定義 salt 的pillar)

階段 3 — 部署:創建包含必要 Ceph 服務的基本 Ceph 群集,有關必要服務的串列

階段 4 — 服務:可在此階段安裝 Ceph 的其他功能,例如 iSCSI、RADOS 網關和CephFS,其中每個功能都是可選的,

階段 5 — 去除階段:此階段不是必需的,在初始設定期間,通常不需要此階段,在此階段,將會去除受控端的角色以及群集配置,如果您需要從群集中去除某個儲存節點,則需要運行此階段.

DeepSea CLI

DeepSea 還提供了一個 CLI 工具,供用戶監視或運行階段,同時實時將執行進度可視化,支持使用以下兩種模式來可視化階段的執行進度:

  • 監視模式:可視化另一個終端會話中發出的 salt-run 命令所觸發 DeepSea 階段的執行進度,
  • 獨立模式:運行 DeepSea 階段,并在該階段的構成步驟執行時提供相應的實時可視化效果,

 監控模式 Monitor Mode

   該程式監控提供一個詳細的,實時的可視化操作行為,當在執行運行salt-run state.orch時,監控執行期間運行了什么

# deepsea monitor

 獨立模式 Stand-alone Mode

# deepsea stage run stage-name# salt-run state.orch ceph.stage.0# deepsea stage run ceph.stage.0

Deepsea幫助資訊

# man deepsea-monitorNAMEdeepsea-monitor - Starts the DeepSea stage execution progress monitor.# man deepsea-stage run

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65570.html

標籤:其他

上一篇:來問一下古老的問題,雙網卡上網

下一篇:誰可以幫我分析一下這個抓包檔案,主要是分析主機192.168.0.117發送到網路列印機192.168.30.111的資料

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more