溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mogilefs詳解

發布時間:2020-06-14 02:37:06 來源:網絡 閱讀:884 作者:紅塵世間 欄目:數據庫

分布式:

分布式存儲或分布式文件系統的概念:

多臺計算機每一臺提供一定的存儲空間存儲數據,通過元數據服務器將數據均勻的存儲在各個節點上

元數據:描述數據的數據,主要是描述數據屬性,用來支持如指示存儲位置、資源查找、文件記錄等功能

分布式文件系統:可以直接掛載在系統上進行訪問

分布式存儲:只能通過API進行訪問

有元數據節點服務器:元數據節點存儲元數據,數據節點存儲數據

無元數據節點服務器:每個數據節點保存完整的元數據和部分數據

常見軟件:

GFS:google file system

HDFS:Hadoop file system

TFS:taobao(淘寶) file system

ceph:linux內核中實現的分布式文件系統

MooseFS:輕量級分布式文件系統

MogileFS:輕量級分布式文件系統,比moosefs的性能高


MogileFS

MogileFS有3個組件:


Tracker:是文件系統集群的核心節點,基于數據庫保存元數據,主要用于監控、指示storage節點完成數據的添加、刪除、查詢,及節點之間數據的復制等,Tracker節點通常有多個,以實現負載均衡和高可用

storage:實際存儲數據的位置,能完成文件創建、刪除、重命名等操作

database:存儲Tracker節點的元數據及全局信息


實現原理: 在MogileFS中,每一個數據塊都會有多個副本,存放于多個storage上(一般是3份),在Tracker上會分別每一個數 據塊的存儲位置。若某個storage節點不在線了,客戶端向Tracker節點請求獲取數據時,Tracker節點會返回副本的存儲位置給客戶端。這樣就保證了整個集群高可用性。當有數據存儲至某一storage節點后,各storage節點會根據Tracker的指示通過節點間通信將副本發送至其他節點上。若某一storage下線了,該節點上的副本會由其他節點重新提供,保證副本的個數不少于指定的值



安裝配置:

環境準備:
	[epel]					
	nama=epel package
	baseurl=http://mirrors.aliyun.com/epel/6/x86_64/	#阿里yum源
	gpgcheck=1
	enabled=1
	gpgkey=http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
		
	yum -y install Perlbal				#安裝perl包管理工具
	yum -y install perl-DBI				#安裝其他依賴包
	yum -y install perl-DBD-MySQL			#連接數據庫模塊
	yum -y install perl-Danga-Socket
	yum -y install perl-IO-AIO
	yum -y install perl-Net-Netmask
	yum -y install cpan				#perl模塊管理工具
	yum -y install mysql mysql-server		#安裝數據庫
	
	cpan		#第一次使用perl包管理工具需要輸入yes進行環境配置
		cpan[1]> install MogileFS::Client   #使用cpan安裝MogileFS::Client
		cpan[1]> install MogileFS::Utils
安裝mogilefs:
   wget http://search.cpan.org/CPAN/authors/id/D/DO/DORMANDO/MogileFS-Server-2.44.tar.gz    
	tar zxvf MogileFS-Server-2.44.tar.gz -C /usr/src/
	cd /usr/src/MogileFS-Server-2.44
	perl Makefile.PL 		#檢查環境	
	make && make install		#編譯  安裝
配置mysql數據庫:
	chkconfig --add mysqld
	chkconfig mysqld on
	service mysqld start			#啟動mysql
	mysqladmin -uroot password 123.com	#設置root密碼
	mysql -uroot -p			        #連接數據庫
	   create database mogilefs;	       	#創建數據庫
	   grant all on mogilefs.* to 'mogilefs'@'192.168.%.%' identified by '456.com';	
	       #授權用戶
	   flush privileges;
         mogdbsetup --dbhost=192.168.0.10 --dbrootpass='123.com' --dbuser=mogilefs --dbpass='456.com'
		 --dbhost=	     	#數據庫地址,默認為localhost
		 --dbport=	       	#端口,默認3306
		 --dbname=		#連接的庫名,默認mogilefs
		 --dbrootuser=		#初始化庫的用戶,默認root
		 --dbrootpass=	        #root的密碼,默認為空
		 --dbuser=	        #連接初始化庫的用戶,默認mogilefs
		 --dbpass=      	#初始用戶的密碼,默認為空


配置mogilefs:
	useradd -r mogilefs			#創建運行用戶,mogilefs不能以root用戶運行
	mkdir /etc/mogilefs		
	mkdir /var/run/mogilefsd		#pid文件存放位置
	vim /etc/mogilefs/mogilefsd.conf 	#創建配置文件
		pidfile = /var/run/mogilefsd/mogilefsd.pid	#pid文件位置
		db_dsn = DBI:mysql:mogilefs:host=192.168.0.10;port=3306;mysql_connect_timeout=5   
		     #連接數據庫的信息
		daemonize = 1		    #運行為守護進程
		db_user = mogilefs          #數據庫上的用戶名
		db_pass = 456.com 	    #用戶名對應的密碼
		listen = 0.0.0.0:7001       #監聽的地址和端口
		conf_port = 7001 
		query_jobs = 10             #用于查詢的進程數
		delete_jobs = 1             #用于刪除操作的進程數
		replicate_jobs = 5          #用于復制的進程數
		reaper_jobs = 1             #用于回收資源的進程數
	
	chown -R mogilefs:mogilefs /etc/mogilefs	    #修改屬主屬組
	chown -R mogilefs:mogilefs /var/run/mogilefsd		
	su - mogilefs -c "mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon"	
	    #啟動服務
	ss -tnl	| grep 7001			#查看服務是否啟動	
storage配置:安裝和Tracker一樣的包,如果不作為Tracker則不需要配置安裝數據庫
	useradd -r mogilefs		#創建運行用戶
	mkdir -pv /mogilefs/data/dev1  #創建數據存儲目錄,dev1必須有代表第一個storage的設備
	mkdir /etc/mogilefs	
	vim /etc/mogilefs/mogstored.conf 
		maxconns = 1000               #最大并發連接數
		httplisten = 0.0.0.0:7500     #http監聽的地址
		mgmtlisten = 0.0.0.0:7501     #管理接口監聽地址
		docroot = /mogilefs/data      #用于存儲的目錄
	
	chown -R mogilefs:mogilefs /etc/mogilefs    #修改屬主屬組
	chown -R mogilefs:mogilefs /mogilefs/	
	su - mogilefs -c "mogstored -c /etc/mogilefs/mogstored.conf --daemon"
	        #啟動服務
	ss -ntl | grep 7500 
	ss -ntl | grep 7501
mogilefs管理:	
	mogadm check			#檢查狀態
	mogadm device list		#查看各節點設備情況
	mogadm host list		#查看各節點情況
	mogadm host add 192.168.0.10 --ip=192.168.0.10 --status=alive	
	        #添加節點,192.168.0.10標示名稱
	mogadm host add 192.168.0.50 --ip=192.168.0.50 --status=alive		
	        #添加節點,192.168.0.50標示名稱
	mogadm device add 192.168.0.10 1		#添加第一個節點
	mogadm device add 192.168.0.50 2		#添加第二個節點
	mogadm domain list			#查看域
	mogadm domain add www			#添加www域
	mogadm --trackers=192.168.0.10:7001 class add www user --mindevcount=2	
	#在www域內添加user類,mindevcount:最小復制文件的份數  replpolicy :復制份數
		
	mogupload --trackers=192.168.0.10:7001 --domain=www --key='pwd' --file='/etc/passwd'
		#上傳文件  key:上傳保存位置,以dev為根   file:本地文件
	mogfileinfo --trackers=192.168.0.10:7001 --domain=www --key='pwd'  #查看文件
	moglistkeys --trackers=192.168.0.10 --domain=www		#列出所有key


配置實例:

實驗環境:centos6.5
    192.168.0.10  Nginx  	 192.168.0.20  mysql
    192.168.0.30  mogilefs   192.168.0.40  mogilefs  192.168.0.50  mogilefs
		
  1、配置mogilefs:
    mogadm --trackers=192.168.0.30 host add 192.168.0.30 --ip=192.168.0.30 --status=alive
    mogadm --trackers=192.168.0.30 host add 192.168.0.40 --ip=192.168.0.40 --status=alive
    mogadm --trackers=192.168.0.30 host add 192.168.0.50 --ip=192.168.0.50 --status=alive
    mogadm domain add www
    mogupload --trackers=192.168.0.10:7001 --domain=www --key='pwd' --file='/etc/passwd'
			
			
    2、編譯安裝nginx:
	groupadd -r nginx
	useradd -r -g nginx nginx
	yum -y install pcre-devel
	tar zxvf nginx-1.8.1.tar.gz -C /usr/src/		
	tar zxvf nginx_mogilefs_module-1.0.4.tar.gz -C /usr/src/   #支持mogilefs的第三方模塊
	 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=/usr/src/nginx_mogilefs_module-1.0.4/
	--add-module:指定第三方模塊位置
	make && make install
		
    3、配置nginx:
	http {
	    include       mime.types;
	    default_type  application/octet-stream;
	
	    upstream mogfs{			#tracker地址
	        server 192.168.0.30:7001;
		server 192.168.0.40:7001;
		server 192.168.0.50:7001;
		} 

	    sendfile        on;
	    keepalive_timeout  65;

	    server {
		    listen       80;
		    server_name  localhost;

		    location /img/ {    	#啟用mogilefs集群
		        mogilefs_tracker mogfs;    #tracker地址
			    mogilefs_domain www;	#指定域
			    mogilefs_noverify on;	#不做校驗
			    mogilefs_methods GET;	#請求方法
					
			    mogilefs_pass {
			        proxy_pass $mogilefs_path;
			            #必須這樣寫,$mogilefs_path模塊內置變量	
				proxy_hide_header Content-Type;		
			            #隱藏Content-Type
				proxy_buffering off;		#關閉緩存
				}
			}   
		}
	}

		4、驗證
			1、訪問http://192.168.0.10/img/pwd
			2、關閉192.168.0.30繼續訪問,查看訪問是否正常		




向AI問一下細節
推薦閱讀:
  1. wsdl詳解
  2. mysql 詳解

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

og
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女