分布式之GlusterFS分布式文件系统

GFS 分布式文件系统 一、GlusterFS概述 1.GlusterFS简介 GlusterFS 是一个开源的分布式文件系统。 由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。 没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。 MFS 传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。而 G 阅读详情

一.GlusterFS概述

1.GlusterFS简介

开源的分布式文件系统
由存储服务器、客户端以及NFS/Samba存储网关组成
无元数据服务器

在这里插入图片描述

2.GlusterFS特点

扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议

3.GlusterFS术语

Brick(砖)
Volume(卷)
FUSE(协议)
VFS(入口)
Glusterd(程序)

4.模块化堆栈式架构

模块化、堆栈式的架构
通过对模块的组合,实现复杂的功能

在这里插入图片描述

二.GlusterFS工作原理

1.GlusterFS工作流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uRLu3yvq-1605588632209)(C:\Users\谭文龙\AppData\Roaming\Typora\typora-user-images\image-20201116182108620.png)]

Application:客户端或应用程序通过GlusterFS的挂载点访问数据
VFS:Linux系统内核通过VFS,API收到请求并处理
VFS将数据传递给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
GlusterFS client收到数据后,client根据配置文件的配置对数据进行处理
通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上

2.弹性HASH算法

通过HASH算法得到一个32位的整数
划分为N个连续的子空间,每个空间对于一个Brick
弹性HASH算法的优点
	保证数据平均分布在每一个Brick中
	解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

在这里插入图片描述

三.GlusterFS的卷类型

分布式卷
条形卷
复制卷
分布式条带卷
分布式复制卷
条带复制卷
分布式条带复制卷

1.分布式卷

分布式卷
	没有对文件进行分块处理
	通过扩展文件属性保存HASH值
	支持的底层文件系统由EXT3、EXT4、ZFS、XFS等
分布式卷的特点
	文件分布在不同的服务器,不具备冗余性
	更容易和廉价地扩展卷的大小
	单点故障会造成数据丢失
	依赖底层数据保护

创建分布式卷
创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
# gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3

在这里插入图片描述

2.条形卷

条形卷
	根据偏移量将文件分成N块(N个条形节点),轮询的存储在每个Brick Server节点
	存储大文件时,性能尤为突出
	不具备冗余性,类似Raid0
特点
	将数据被分割成更小块分布到服务器群中的不同条带区
	分布减少了负载且更小的文件加速了存取的速度
	没有数据冗余

创建条带卷
创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
# gulster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EESIT5Qh-1605588632219)(C:\Users\谭文龙\AppData\Roaming\Typora\typora-user-images\image-20201116185918094.png)]

3.复制卷

复制卷
	同一服务器保存一份或多分副本
	因为要保存副本,所以磁盘利用率较低
	若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
特点
	卷中所有的服务器均保存一个完整的副本
	卷的副本数量可由客户创建的时候决定
	至少有两个块服务器或更多服务器
	具备冗余性
创建复制卷
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dri2两个Brick中
# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cVhLOaNO-1605588632220)(C:\Users\谭文龙\AppData\Roaming\Typora\typora-user-images\image-20201116191515595.png)]

4.分布式条带卷

分布式条带卷
	兼顾分布式卷和条带卷的功能
	主要用于大文件访问处理
	至少最少需要4台服务器
创建分布式条带卷
创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条代数的倍数(>=2倍)
# gluster volume create dis-stripe stripe 2 transport tcp server:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6OyjTrk-1605588632222)(C:\Users\谭文龙\AppData\Roaming\Typora\typora-user-images\image-20201116192421154.png)]

5.分布式复制卷

分布式复制卷
	兼顾分布式卷和复制卷的功能
	用于需要冗余的情况
创建分布式复制卷
创建复制卷dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是复制卷的倍数(>=2倍)
# gulster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqtG3I3A-1605588632224)(C:\Users\谭文龙\AppData\Roaming\Typora\typora-user-images\image-20201116193510275.png)]

四.项目操作

1.磁盘自动分区和挂载

操作系统IP主机名硬盘数量(四块)
centos 7.4192.168.100.11 node1sdb:5G sdc:5G sdd:5G sde:5G
centos 7.4192.168.100.12 node2sdb:5G sdc:5G sdd:5G sde:5G
centos 7.4192.168.100.13 node3sdb:5G sdc:5G sdd:5G sde:5G
centos 7.4192.168.100.14 node4sdb:5G sdc:5G sdd:5G sde:5G
centos 7.4192.168.100.15 node5-clientsda:20G

2.四台主机中操作

关闭防火墙和selinux,设置hosts文件

分别更改主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4



关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

关闭selinux
sed -i '/SELINUX/s/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.11 node1
192.168.100.12 node2
192.168.100.13 node3
192.168.100.14 node4

scp /etc/hosts root@192.168.100.12:/etc/hosts
scp /etc/hosts root@192.168.100.13:/etc/hosts
scp /etc/hosts root@192.168.100.14:/etc/hosts

[root@node1 ~]# vi /etc/yum.repos.d/GLFS.repo
[GLFS]
name=glfs
baseurl=file:///root/gfsrepo
gpgcheck=0
enabled=1

去掉客户机,四台同做
cd /etc/yum.repos.d/
rm -rf CentOS*

yum -y install glusterfs  glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd
systemctl enable glusterd
systemctl status glusterd

//时间同步
ntpdate ntp1.aliyun.com

//添加入存储信任池只要在一台主机上添加其他节点即可
[root@node1 ~]# gluster peer status
Number of Peers: 3

Hostname: node2
Uuid: d0000d35-3db1-4ff0-ba0b-74ff78374557
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: 870a36df-9a04-45f3-9f72-814722f8ad4c
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: a02b35f0-0b69-461a-ac57-c978eb9cb8e9
State: Peer in Cluster (Connected)

fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdc1
mkfs.ext4 /dev/sdd1
mkfs.ext4 /dev/sde1

mkdir -p /data/{sdb1,sdc1,sdd1,sde1}
mount /dev/sdb1 /data/sdb1
mount /dev/sdc1 /data/sdc1
mount /dev/sdd1 /data/sdd1
mount /dev/sde1 /data/sde1

1.分布式卷

文件分布在不同的服务器,不具备冗余性
更容易和廉价地扩展卷的大小
单点故障会造成数据丢失
依赖底层的数据保护

[root@node1 ~]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
volume create: dis-vol: success: please start the volume to access data
[root@node1 ~]# gluster volume info dis-vol
 
Volume Name: dis-vol
Type: Distribute
Volume ID: 839e3e35-a3fe-4268-b6bb-6507b3432a68
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

[root@node1 ~]# gluster volume start dis-vol
volume start: dis-vol: success
[root@node1 ~]# gluster volume status dis-vol

2.条带卷

条形卷
	根据偏移量将文件分成N块(N个条形节点),轮询的存储在每个Brick Server节点
	存储大文件时,性能尤为突出
	不具备冗余性,类似Raid0
特点
	将数据被分割成更小块分布到服务器群中的不同条带区
	分布减少了负载且更小的文件加速了存取的速度
	没有数据冗余

[root@node1 ~]# gluster volume create stripe-vol stripe 2 node3:/data/sdb1 node4:/data/sdb1 force
volume create: stripe-vol: success: please start the volume to access data
[root@node1 ~]# gluster volume info stripe-vol 
 
Volume Name: stripe-vol
Type: Stripe
Volume ID: c738dd4f-f08f-48e3-815c-505e32ea454c
Status: Created
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node3:/data/sdb1
Brick2: node4:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume start stripe-vol 
volume start: stripe-vol: success
[root@node1 ~]# gluster volume status stripe-vol 

3.复制卷

复制卷
	同一服务器保存一份或多分副本
	因为要保存副本,所以磁盘利用率较低
	若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
特点
	卷中所有的服务器均保存一个完整的副本
	卷的副本数量可由客户创建的时候决定
	至少有两个块服务器或更多服务器
	具备冗余性
	
[root@node1 ~]# gluster volume create rep-vol replica 2 node1:/data/sdc1 node2:/data/sdc1 force
volume create: rep-vol: success: please start the volume to access data
[root@node1 ~]# gluster volume info rep-vol 
 
Volume Name: rep-vol
Type: Replicate
Volume ID: eb807c32-0e8a-4daf-8c47-8d920ccb1a36
Status: Created
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdc1
Brick2: node2:/data/sdc1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume start rep-vol 
volume start: rep-vol: success
[root@node1 ~]# gluster volume status rep-vol

4.分布式条带卷

分布式条带卷
	兼顾分布式卷和条带卷的功能
	主要用于大文件访问处理
	至少最少需要4台服务器
	
[root@node1 ~]# gluster volume create dis-stripe stripe 2 node1:/sdd1 node2:/sdd1 node3:/sdd1 node4:/sdd1 force
volume create: dis-stripe: success: please start the volume to access data
[root@node1 ~]# gluster volume info dis-stripe 
 
Volume Name: dis-stripe
Type: Distributed-Stripe
Volume ID: c7e1a2ca-5e26-4dfd-bf72-a36317da819f
Status: Created
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/sdd1
Brick2: node2:/sdd1
Brick3: node3:/sdd1
Brick4: node4:/sdd1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume start dis-stripe 
volume start: dis-stripe: success
[root@node1 ~]# gluster volume status dis-stripe

5.分布式复制卷

分布式复制卷
	兼顾分布式卷和复制卷的功能
	用于需要冗余的情况

[root@node1 ~]# gluster volume create dis-rep replica 2 node1:/sde1 node2:/sde1 node3:/sde1 node4:/sde1 force
volume create: dis-rep: success: please start the volume to access data
[root@node1 ~]# gluster volume  info dis-rep 
 
Volume Name: dis-rep
Type: Distributed-Replicate
Volume ID: ebed56f5-3ea6-4ce9-832f-92e17478a9da
Status: Created
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/sde1
Brick2: node2:/sde1
Brick3: node3:/sde1
Brick4: node4:/sde1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume  start dis-rep 
volume start: dis-rep: success
[root@node1 ~]# gluster volume  status dis-rep
[root@node1 ~]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol

6.客户端

[root@node5-client ~]# yum -y install glusterfs glusterfs-fuse
[root@node5-client ~]# mkdir -p /text/{dis,strip,rep,dis_stripe,dis_rep}
[root@node5-client ~]# mount.glusterfs node1:dis-vol /text/dis			//挂载分布式卷
[root@node5-client ~]# mount.glusterfs node1:stripe-vol /text/strip		//挂载条形带
[root@node5-client ~]# mount.glusterfs node1:rep-vol /text/rep			//挂载复制卷
[root@node5-client ~]# mount.glusterfs node1:dis-stripe /text/dis_stripe//挂载分布式条带卷
[root@node5-client ~]# mount.glusterfs node1:dis-rep /text/dis_rep		//挂载分布式复制卷

df -Th
node1:dis-stripe fuse.glusterfs   20G   81M   19G    1% /text/dis_strip
node1:dis-rep    fuse.glusterfs  9.6G   41M  9.1G    1% /text/dis_rep
node1:rep-vol    fuse.glusterfs  4.8G   21M  4.6G    1% /text/rep
node1:stripe-vol fuse.glusterfs  9.6G   41M  9.1G    1% /text/strip
node1:dis-vol    fuse.glusterfs  9.6G   41M  9.1G    1% /text/dis

测试

创建5个40M的文件
dd if=/dev/zero of=/demo1.log bs=1M count=40
dd if=/dev/zero of=/demo2.log bs=1M count=40
dd if=/dev/zero of=/demo3.log bs=1M count=40
dd if=/dev/zero of=/demo4.log bs=1M count=40
dd if=/dev/zero of=/demo5.log bs=1M count=40
复制5个文件到不同的卷上
[root@node5-client /]# cp /demo* /text/dis
[root@node5-client /]# cp /demo* /text/strip
[root@node5-client /]# cp /demo* /text/rep
[root@node5-client /]# cp /demo* /text/dis_stripe
[root@node5-client /]# cp /demo* /text/dis_rep

查看分布式卷
[root@node1 ~]# ll -h /data/sdb1
总用量 161M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo4.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node2 ~]# ll -h /data/sdb1
总用量 41M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found

查看条带卷
[root@node3 ~]# ll -h /data/sdb1
总用量 101M
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo4.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node4 ~]# ll -h /data/sdb1
总用量 101M
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo1.log
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo2.log
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo3.log
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo4.log
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo5.log
drwx------ 2 root root 16K 11月 17 09:59 lost+found

查看复制卷
[root@node1 ~]# ll -h /data/sdc1
总用量 201M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo4.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node2 ~]# ll -h /data/sdc1
总用量 201M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo4.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found

查看分布式条带卷
[root@node1 ~]# ll -h /data/sdd1
总用量 81M
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo4.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node2 ~]# ll -h /data/sdd1
总用量 81M
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo4.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node3 ~]# ll -h /data/sdd1
总用量 21M
-rw-r--r--. 2 root root 20M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node4 ~]# ll -h /data/sdd1
总用量 21M
-rw-r--r-- 2 root root 20M 11月 17 12:04 demo5.log
drwx------ 2 root root 16K 11月 17 09:59 lost+found

查看分布式复制卷
[root@node1 ~]# ll -h /data/sde1
总用量 161M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo4.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node2 ~]# ll -h /data/sde1
总用量 161M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo1.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo2.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo3.log
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo4.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node3 ~]# ll -h /data/sde1
总用量 41M
-rw-r--r--. 2 root root 40M 11月 17 12:04 demo5.log
drwx------. 2 root root 16K 11月 17 09:59 lost+found
[root@node4 ~]# ll -h /data/sde1
总用量 41M
-rw-r--r-- 2 root root 40M 11月 17 12:04 demo5.log
drwx------ 2 root root 16K 11月 17 09:59 lost+found

五.其他维护命令

//注意:删除卷时,信任池不能有主机处于拓机状态,否则删除不成功
[root@node1 ~]# gluster volume delete dis-stripe 
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: dis-stripe: success

[root@node1 ~]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol

访问控制
//进拒绝node1
gluster volume set dis-vol auth.reject 192.168.100.15
volume set:success
gluster volume set dis-vol auth.allow 192.168.100.15
volume set:success
GlusterFS分布式文件系统群集 GlusterFS简介、GlusterFS部署 阅读详情

相关推荐

Glusterfs分布式存储

GFS开源分布式存储

m0_62948770的博客 1838

GlusterFS(GFS)分布式文件系统

介绍GlusterFS(GFS)分布式文件系统;详细介绍常用的五种卷:分布式卷(Distribute volume)、条带卷(Stripe volume)、复制卷(Replica volume)、分布式条带卷(Distribute Stripe volume)和分布式复制卷(Distribute Replica volume)

MONGJUK的博客 1万+

16、分布式文件系统化GlusterFs

GlusterFS 实验目标: 掌握Glusterfs的理论和配置   实验理论: GlusterFS(Gluster File System) 分布式文件系统的诞生: 以淘宝为例,淘宝把全国所有的数据放在杭州,在双11时,面对巨大的访问量,会发生什么?(并发处理用LB解决)大量的用户时时刻刻的对磁盘阵列读写,面对这么强大的攻势,在强大的磁盘阵列也得崩溃,即使访问量不大,有的人离杭州远

VmBoys的博客 2998

探索GlusterFS:开源分布式文件系统

在大数据时代背景下,随着企业与个人数据量的爆炸式增长,传统的单机文件系统已经无法满足日益增长的数据存储和访问需求。在此背景下,一种名为GlusterFS的开源分布式文件系统应运而生,以其卓越的可扩展性、高可用性和高性能特性,为海量数据存储提供了有力支持。本文将深入探讨GlusterFS的工作原理、核心特性以及实际应用场景

hy199707的博客 2523

从BUCK-BOOST到反激:一个‘拆电感’的视角,轻松理解多路输出交叉调整

本文从BUCK-BOOST电路到反激变换器的演变入手,通过‘拆解电感’的独特视角解析多路输出交叉调整机制。深入探讨了反激电路的能量暂存方式、传递路径变化及电压关系,并结合具体参数对比揭示其特性。针对多路输出中的电压平衡问题,提供了绕组排布优化、元器件选型等实战技巧,帮助工程师有效提升电源系统的稳定性与效率。

weixin_33738578的博客 437

【硬核指南/MI50 32G/Ubuntu】从零部署大模型:MI50显卡Ubuntu系统驱动安装与避坑全记录

本文详细记录了在Ubuntu系统上为AMD MI50显卡安装驱动并部署大模型的完整流程,包括硬件兼容性检查、BIOS关键设置、系统安装优化、ROCm驱动安装及常见问题解决方案。特别针对MI50显卡在X99平台上的特殊配置需求提供了实用技巧,帮助用户避免常见陷阱,提升大模型训练效率。

weixin_42520909的博客 806

架构解密分布式到微服务企业级分布式文件系统GlusterFS

企业级分布式文件系统GlusterFS 2003年,Gluster公司参加了一个研制超级计算机的项目,该项目隶属于美国能源部所属的一个国家实验室,代号为Thunder 的超级计算机于次年研制成功并投入生产,成为当年世界上排名第二的超级计算机。在这个过程中,Gluster 公司积累了丰富的高性能分布式文件系统的研发经验,最终于2007年发布了开源的GlusterFS文件系统,这个新的分布式文件系统也成为除Lustre外的一个新选择。 GlusterFS 的最初设计目标是简单方便、高性能及高扩展能力,具体表

stone_tmp的博客 325

5-->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之一

SWITCH 交换芯片驱动配置: 一、 配置 MDIO 总线 二、配置 MAC 接口 三、基于 MAC 的 DMA 配置 四、设备驱动结构体 五、数据收发包

weixin_38387929的博客 1万+

GlusterFS分布式文件系统

文章目录条带卷复制卷分布式条带卷分布式复制卷 GlusterFS概述 GlusterFS工作原理 GlusterFS的卷类型 部署群集环境 创建卷、部署客户端、测试文件系统 其他的维护命令 GlusterFS简介 开源的分布式文件系统 由存储服务器、客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick VolumeF USE VFS Glusterd Brick(存储

weixin_50344811的博客 225

微信浏览器input[file]拍照点确认后强刷新解决

微信浏览器input强刷新,input h5强刷新,微信浏览器上传图片后刷新,h5表单强刷新,h5调用拍照后返回首页,h5调用拍照后刷新,微信浏览器强制刷新,iOS上微信浏览器input强刷新,iOS上微信浏览器上传图片后强刷新,ios微信浏览器上传图片后页面刷数据,h5在ios浏览器闪频,h5在ios微信打开时强制刷新,ios手机上调用相机后页面刷新,ios手机上调用相机后页面后重置,ios拍照后刷新,ios拍照完页面大刷新

江拥羡橙的博客 1350

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4707

学习GlusterFS分布式文件存储一篇就够了

GlusterFS是一个免费的开源分布式文件系统,具有无中心节点、堆栈式设计、全局统一命名空间、高可用、高性能和横向扩展等特点,在业界被广泛使用。

下一个艺术家 892

OpenGL 进阶系列10 - 光线跟踪实现简介(Ray Tracing)

OpenGL 实现光线跟踪(Ray Tracing)是一个相对复杂但有趣的挑战,通常用于生成高度逼真的图像效果,如反射、折射、阴影等。OpenGL 本身并不是为光线跟踪设计的,但可以通过结合计算着色器和现代 OpenGL 功能实现光线跟踪。光线跟踪的基本思路是从相机(或视点)出发,发射光线并计算这些光线与场景中物体的交点。光线与场景中物体相交的计算。计算交点的光照(基于表面法线、光源位置、材质等)。反射和折射的处理(如果物体是透明或反射的)。

GPU全栈博主 1534

详解 GFS分布式文件系统 (条带卷/复制卷/分布式条带卷/分布式复制卷)

GFS分布式文件系统一.GlusterFS概述1.GlusterFS简介2.GlusterFS特点3. GlusterFS术语4.模块化堆栈式架构5. GlusterFS 工作流程6.弹性HASH算法7. GlusterFs的卷类型二. 部署GlusterFs 群集 一.GlusterFS概述 1.GlusterFS简介 ① GlusterFS是一-个开源的分布式文件系统。 由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。 没有元数据服务器组件,这有助于提升整个系统的性能、

穷则独善其身 达则兼善天下 1792

具身智能中的(VLA)算法与实践——第一讲 基础与概览

本文介绍了视觉-语言-动作(VLA)模型的基础概念及其在AI领域的重要性。VLA模型通过融合多模态数据实现具身智能,使AI系统能感知环境并执行物理动作。文章探讨了大型语言模型(LLMs)和视觉语言模型(VLMs)如何赋能具身智能,包括指令解析、场景理解和动作规划。同时提供了Python、PyTorch/TensorFlow开发环境的详细搭建指南,包含GPU配置建议和测试代码。VLA模型在机器人操作、导航、人机协作等领域具有广泛应用前景,是实现通用人工智能的关键技术。

u012133341的博客 1599

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 931

Kubernetes(k8s)之分布式文件系统glusterfs

1、为什么使用分布式文件系统glusterfs? 答:使用持久化存储nfs,但是使用nfs这个共享存储特别简单,但是后期在扩容和管理方面都特别的不方便,在生产中一般都是使用分布式文件系统,这里使用的是分布式文件系统glusterfs。 2、什么是分布式文件系统glusterfs? 答:分布式文件系统glusterfs是一个开源分布式文件系统,具有强大的横向扩展能力,可以支持数PB存储容器和数千客户端,通过网络互联成一个并行的网络文件系统。具有可扩展性、高性能、高可用性等特点。 3、安装分布式..

Biexiansheng的博客 1235

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

GlusterFS原理及如何配置使用

目录一、GlusterFS概述1.1简介1.2特点1.3GlusterFS相关术语1.4模块化堆栈式架构二、GlusterFS工作原理2.1弹性hash算法2.2GlusterFS工作流程三、GlusterFS的卷类型3.1分布式卷3.2条带卷3.3复制卷3.4分布式条带卷3.5分布式复制卷四、部署GlusterFS卷4.1实验环境4.2以下过程为构建存储池子 一、GlusterFS概述 1.1简介 Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决

huhaiyangFIVE的博客 1249

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

GlusterFS分布式文件存储的原理和案例部署

一、GlusterFS概述 GlusterFS简介 开源的分布式文件系统 有存储服务器、客户端以及NFS/Samba 存储网关组成 无元数据服务器 GlusterFS特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick Volume FUSE VFS Glusterd 模块化堆栈式架构 模块化、堆栈式的架构通过对模块的组合,实现复杂的功能 二、GlusterFS工作原理 2.1 GlusterFS工作流程 客户端或应用程序通过

qq_41786285的博客 1184

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

GlusterFS 分布式文件系统

GlusterFS 是一个开源的分布式文件系统,最初由Gluster公司开发,后来被Red Hat收购并继续维护和支持。它的设计目标是为大规模的数据存储需求提供高可靠性、高性能和可扩展性的解决方案。

weixin_56770318的博客 1633

GFS分布式文件系统

GlusterFS 是一个开源的分布式文件系统。(文件系统:负责让数据用什么格式保存在磁盘中的一个技术点)由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。无元数据服务器(元数据服务器就是保存数据的地方)。扩展存储容量,提高性能,并通过多个互联网络的存储节点的数据进行冗余,确保数据的可用性和一致性。分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷1、分布式卷:以文件为单位来通过hash算法在各个Brick中,不具备冗余能力。

manyulanlanlu的博客 565

GFS(GlusterFS)分布式文件系统

GFS(GlusterFS)分布式文件系统一.GlusterFS概述1.GliusterFS特点2.GFS组成3.GFS文件系统组成4.GFS术语5.GFS架构 一.GlusterFS概述 GFS, Big Table, Map Reduce称为Google的三驾马车,是许多基础服务的基石 GFS于2003年提出,是一个分布式的文件系统,与此前的很多分布式系统的前提假设存在很大的不同,适用于以下场景 1认为组件失效是一种常态,提供了容错机制,自动负载均衡,使得分布式文件系统可以在廉价机器上运行 2面向大文

LI_MINGXUAN的博客 1546

GlusterFS分布式的介绍及其实操

GlusterFS简介 开源的分布式文件系统 由存储服务器、客户端以及NFS/Samba存- 储网关组成 无元数据服务器 GlusterFS 特点: ♢ 扩展性和高性能; ♢ 高可用性; ♢ 全局统一命名空间; ♢ 弹性卷管理; ♢ 基于标准协议 2.模块化堆栈架构:** ♢ 模块化,堆栈式结构; ♢通过对模块的组合,实现复杂的功能; CentOS6.0以下使用的是EXT4文件系统,CentOS7.0使用的是xfs格式 RDMA协议的优势是去中心化,没有唯一的管理mas

weixin_48191039的博客 2332
上一篇: Shell脚本之shell函数
下一篇: 企业级日志分析系统——ELK
tanwenlong01
博客等级 码龄6年 26粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值