溫馨提示×

溫馨提示×

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

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

mogilefs詳解

發(fā)布時間:2020-06-14 02:37:06 來源:網(wǎng)絡(luò) 閱讀:825 作者:紅塵世間 欄目:數(shù)據(jù)庫

分布式:

分布式存儲或分布式文件系統(tǒng)的概念:

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

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

分布式文件系統(tǒng):可以直接掛載在系統(tǒng)上進(jìn)行訪問

分布式存儲:只能通過API進(jìn)行訪問

有元數(shù)據(jù)節(jié)點服務(wù)器:元數(shù)據(jù)節(jié)點存儲元數(shù)據(jù),數(shù)據(jù)節(jié)點存儲數(shù)據(jù)

無元數(shù)據(jù)節(jié)點服務(wù)器:每個數(shù)據(jù)節(jié)點保存完整的元數(shù)據(jù)和部分?jǐn)?shù)據(jù)

常見軟件:

GFS:google file system

HDFS:Hadoop file system

TFS:taobao(淘寶) file system

ceph:linux內(nèi)核中實現(xiàn)的分布式文件系統(tǒng)

MooseFS:輕量級分布式文件系統(tǒng)

MogileFS:輕量級分布式文件系統(tǒng),比moosefs的性能高


MogileFS

MogileFS有3個組件:


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

storage:實際存儲數(shù)據(jù)的位置,能完成文件創(chuàng)建、刪除、重命名等操作

database:存儲Tracker節(jié)點的元數(shù)據(jù)及全局信息


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



安裝配置:

環(huán)境準(zhǔn)備:
	[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			#連接數(shù)據(jù)庫模塊
	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		#安裝數(shù)據(jù)庫
	
	cpan		#第一次使用perl包管理工具需要輸入yes進(jìn)行環(huán)境配置
		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 		#檢查環(huán)境	
	make && make install		#編譯  安裝
配置mysql數(shù)據(jù)庫:
	chkconfig --add mysqld
	chkconfig mysqld on
	service mysqld start			#啟動mysql
	mysqladmin -uroot password 123.com	#設(shè)置root密碼
	mysql -uroot -p			        #連接數(shù)據(jù)庫
	   create database mogilefs;	       	#創(chuàng)建數(shù)據(jù)庫
	   grant all on mogilefs.* to 'mogilefs'@'192.168.%.%' identified by '456.com';	
	       #授權(quán)用戶
	   flush privileges;
         mogdbsetup --dbhost=192.168.0.10 --dbrootpass='123.com' --dbuser=mogilefs --dbpass='456.com'
		 --dbhost=	     	#數(shù)據(jù)庫地址,默認(rèn)為localhost
		 --dbport=	       	#端口,默認(rèn)3306
		 --dbname=		#連接的庫名,默認(rèn)mogilefs
		 --dbrootuser=		#初始化庫的用戶,默認(rèn)root
		 --dbrootpass=	        #root的密碼,默認(rèn)為空
		 --dbuser=	        #連接初始化庫的用戶,默認(rèn)mogilefs
		 --dbpass=      	#初始用戶的密碼,默認(rèn)為空


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


配置實例:

實驗環(huán)境: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模塊內(nèi)置變量	
				proxy_hide_header Content-Type;		
			            #隱藏Content-Type
				proxy_buffering off;		#關(guān)閉緩存
				}
			}   
		}
	}

		4、驗證
			1、訪問http://192.168.0.10/img/pwd
			2、關(guān)閉192.168.0.30繼續(xù)訪問,查看訪問是否正常		




向AI問一下細(xì)節(jié)
推薦閱讀:
  1. wsdl詳解
  2. mysql 詳解

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

og
AI