1. 程式人生 > >glusterfs分析-系列一:glusterfs整體分析

glusterfs分析-系列一:glusterfs整體分析

 首先,熟悉整個業務流程前先了解下glusterfs的幾個程式功能以及相互之間的關係!

gluster cli的命令執行工具,負責將glusterfs的請求傳遞給glusterd程序來執行;大家安裝後glusterfs後,執行gluster就會進入到該命令執行工具了;

glusterd:管理daemon程序,同時負責接收gluster傳送過來的請求並執行相應的操作,比如:呼叫glusterfsd來啟動brick服務;另外負責與其他主機上面的glusterd程序來同步資訊;

gusterfsd:服務程序,由glusterd程序啟動,並且根據卷配置資訊執行從glusterfs傳送過來的請求,同時也負責

glusterd的請求處理;

glusterfs:客戶端的程序,根據卷配置資訊將fuse發過來的操作請求逐層傳遞到最底層的protocol/clientxlator上,該xlator通過rpcglusterfs連線,將請求傳送到glusterfsd伺服器執行;

下面通過2個圖來說明上面幾個程序的具體關係;

1、程序:glusterglusterdglusterd之間的關係

1

2fuseglusterfsglusterfsd之間的關係(通過一個分散式複雜卷的方式來說明,為了突出重點,省略了部分xlator

2

     然後,我們進一步熟悉下整個glusterfs

的幾個主要的業務功能,來幫助我們後面更好的去理解整個業務邏輯(畢竟,業務邏輯也是為了去實現對應的功能的);

1、host的管理,比如:增加和刪除主機的相關處理,來實現擴容和縮容;

2、brick的管理,比如:新增和刪除brick的相關處理,來實現擴容和縮容;

3、資料的平衡等提高磁碟空間利用率相關處理;

4、副本的自我修復等可靠性處理;

5、檔案的讀寫等基本業務相關處理;

6、其他提升效能以及異常相關的處理;

其中,其中圖1主要是負責系統相關的一些處理流程;圖2主要是負責檔案的讀寫處理流程;應該說glusterfs的主要業務邏輯應該都在這裡了(小夥伴們是不是覺得其實還挺簡單的?),下面來詳細分析下整個

glusterfs的整個業務邏輯;

我們將業務邏輯從3個方面進行分析:

1、整個glusterfs的初始化過程;

2、整個glusterfs對於檔案的讀寫操作流程,即圖2的說明(也是glusterfs的核心);

3、整個glusterfs的命令操作流程,即圖1的說明;

相關推薦

glusterfs分析-系列glusterfs整體分析

 首先,熟悉整個業務流程前先了解下glusterfs的幾個程式功能以及相互之間的關係! gluster :cli的命令執行工具,負責將glusterfs的請求傳遞給glusterd程序來執行;大家安裝後glusterfs後,執行gluster就會進入到該命令執行工具了;

WPF原始碼分析系列剖析WPF模板機制的內部實現(

眾所周知,在WPF框架中,Visual類是可以提供渲染(render)支援的最頂層的類,所有視覺化元素(包括UIElement、FrameworkElment、Control等)都直接或間接繼承自Visual類。一個WPF應用的使用者介面上的所有視覺化元素一起組成了一個視覺化樹(visual tree),任何

WPF原始碼分析系列剖析WPF模板機制的內部實現(五)

(注:本文是《剖析WPF模板機制的內部實現》系列文章的最後一篇文章,檢視上一篇文章請點這裡) 上一篇文章我們討論了DataTemplate型別的兩個重要變數,ContentControl.ContentTemplate和ContentPresenter.ContentTemplate,這一篇將討論這個型別的另

小波分析筆記小波產生的背景和歷史

小波分析最近在看哈工大教授冉啟文的小波分析的視頻,講的非常好,推薦給大家。這裏是第一講筆記。第一講:小波產生的背景和歷史一、“點”的概念(重要) 1、以前我們認為在一維空間,點就是一個數;在二維空間,點就是兩個數(x,y),N維空間的點 (x0,x1...xn)以此類推。 2、線性代數

tornado源碼分析系列

python tornado 異步 先來看一個簡單的示例:#!/usr/bin/env python #coding:utf8 import socket def run(): sock = socket.socket(socket.AF_INET, socket.SOCK_STR

Java內存泄漏分析系列之一使用jstack定位線程堆棧信息

技術分享 對象 rgs 沒有 參數 導致 dump 單獨 src 原文地址:http://www.javatang.com 前一段時間上線的系統升級之後,出現了嚴重的高CPU的問題,於是開始了一系列的優化處理之中,現在將這個過程做成一個系列的文章。 基本概念 在對Jav

分析系列之一使用jstack定位執行緒堆疊資訊

基本概念 在對Java記憶體洩漏進行分析的時候,需要對jvm執行期間的記憶體佔用、執行緒執行等情況進行記錄的dump檔案,常用的主要有thread dump和heap dump。 thread dump 主要記錄JVM在某一時刻各個執行緒執行的情況,以棧的形式顯示,是一個文字檔案。通過

Spring Security原始碼分析Spring Security OAuth2整合JWT

Json web token (JWT), 是為了在網路應用環境間傳遞宣告而執行的一種基於JSON的開放標準(RFC 7519).該token被設計為緊湊且安全的,特別適用於分散式站點的單點登入(SSO)場景。JWT的宣告一般被用來在身份提供者和服務提供者

資料結構與演算法學習筆記複雜度分析

一、為什麼要進行復雜度分析     資料結構是用來解決“快”和“省”的問題,也就是如何是程式碼執行更快以及如何節省更多的空間。因此執行效率在演算法中就是一個非常重要的考核指標。時間、空間複雜度分析就是用來衡量一個演算法程式碼的執行效率的指標。複雜度分析在資料結構和演算法中佔

Glide 系列-2主流程原始碼分析(4.8.0)

Glide 是 Android 端比較常用的圖片載入框架,這裡我們就不再介紹它的基礎的使用方式。你可以通過檢視其官方文件學習其基礎使用。這裡,我們給出一個 Glide 的最基本的使用示例,並以此來研究這個整個過程發生了什麼: Glide.with(fragment).load(myU

專案EXCEL資料分析(5W2H法)使用者購買行為分析

專案:用EXCEL對使用者購買行為進行分析---採用5W2H框架 1.確定分析思路 1.1使用者購買行為分析:5W2 WHY:使用者購買的目的是什麼?---市場調查獲取資料 WHAT:使用者主要購買的產品?---各產品的銷量分佈

keystone系列keystone原始碼分析

六 keystone架構   6.1 Keystone API  Keystone API與Openstack其他服務的API類似,也是基於ReSTFul HTTP實現的。 Keystone API劃分為Admin API和Public API: Public API不僅實現獲取版本以及相應擴充

ABP原始碼分析Timing

Timing這個簡單實用的功能主要用於以統一的方式表示時間。因為ABP中有大量的module,還支援自定義module,所以將時間統一表示為local時間(預設)或utc時間是必要的。 IClockProvider:提供獲取當前時間和標準化時間的介面。 UtcClockProvider:實現了以UTC

MyBatis架構設計及原始碼分析系列():MyBatis架構

如果不太熟悉MyBatis使用的請先參見MyBatis官方文件,這對理解其架構設計和原始碼分析有很大好處。 一、概述 MyBatis並不是一個完整的ORM框架,其官方首頁是這麼介紹自己 The MyBatis data mapper framework makes i

Docker原始碼分析)之整體架構圖

一、Docker的總架構圖  docker是一個C/S模式的架構,後端是一個鬆耦合架構,模組各司其職。 使用者是使用Docker Client與Docker Daemon建立通訊,併發送請求給後者

USB分析()中斷函式分析

USB中斷函式分析: __usb_device_interrupt_handler() 首先看下暫存器: Common Device Host Registers Device Registers - Endpoint 1、讀取中斷埠暫存器

Vue專案原始碼分析系列

Vue相關的基礎知識我們已經介紹了不少,官網也有很詳細的使用說明,那麼從本篇文章開始,我會陸續為大家介紹一款開源的Vue專案。首先感謝唐崗在github上分享的“基於vue.js重寫Cnodejs.org社群的webapp”,原始碼地址如下:https://github.com/shinygang/Vue

webpack漸入佳境系列webpack環境配置與打包基礎【附帶各種 "坑" 與解決方案!持續更新中...】

utf 環境配置 lan 配置 要求 完全 需要 構建 樣式 首先介紹傳統模塊化開發的主流方案: 1.基與CMD的sea.js,玉伯提出的解決方案,據說原來京東團隊在使用。用時才定義,就近加載。最近在瀏覽seajs官方文檔時發現seajs的域名已經在轉賣,驚恐萬分之余又想

sed修煉系列()花拳繡腿之入門篇

由於 ... 我會 沖突 mic 區別 comm aud 追上 本文為花拳繡腿招式入門篇,主要目的是入門,為看懂sed修煉系列(二):武功心法做準備。雖然是入門篇,只介紹了基本工作機制以及一些選項和命令,但其中仍然包括了很多sed的工作機制細節。對比網上各sed相關文章以及

Linux Kernel系列開篇和Kernel啟動概要

mis misc 跳轉 line global 最終 width lin 通過 前言 最近幾個月將Linux Kernel的大概研究了一下,下面需要進行深入詳細的分析。主要將以S3C2440的一塊開發板為硬件實體。大概包括如下內容: 1 bootloader分析,以uboo