Preliminary discussion on glusterfs-terminology and architecture
What to do:
I. Terminology
access control listsaccess control lists (ACLs) allows you to assign different permissions for different users or groups even Though they do not correspond to the original owner or the owning group. Access Control brickbrick is the basic unit of storage, represented by an export directory on a server in the Trusted storage pool. The most basic storage unit, represented as the directory output in Trusted storage pool, for the client to mount with Clustera cluster is a group of linked computers, working together closely Thus in many respects forming a single computer. Cluster Distributed file systema file system that allows multiple clients to concurrently access data over&nbsP;a computer network Distributed File System fuse (filesystem in userspace) Filesystem in userspace (FUSE) is a loadable kernel module for Unix-like Computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is Achieved by running file system code in user space while the FUSE module provides only a "Bridge" to the actual kernel interfaces. Dynamically loaded modules on the Unix-like os allow users to create their own file systems without modifying the kernel glusterdgluster management daemon that Needs to run on all servers in the trusted storage pool. Gluster management daemon, to run on all servers in Trusted storage pool geo-replicationgeo-replication provides&nbsP;a continuous, asynchronous, and incremental replication service from site to another over Local Area Networks (LANs), wide area Network (WANs), and across the internet. Provides uninterrupted, asynchronous, and incremental replication services throughout the internal and external network Metadatametadata is defined as data providing information about one or more other pieces of data. There is no special metadata storage concept in glusterfs. the metadata is stored with the file data itself. Metadata holds information about one or more other data, which is not the concept in Glusterfs. Namespacenamespace is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols. Each gluster volume exposes a single namespace&nbSp;as a posix mount point that contains every file in the cluster. This is an abstract environment that includes a bunch of independent logical groups or flags. Each gluster volume has a separate POSIX-standard Mount point as namespace, which contains each file in the cluster posixportable operating system interface [for unix] is the name of a family of related standards specified by the IEEE to define the application programming interface (API), along with shell and utilities interfaces for software compatible with variants of the unix operating system. Gluster exports a fully POSIX compliant file System. A standard, Gluster is compatible. Raidredundant array of inexpensive disks ", is a technology that Provides increased storage reliability through redundancy, combining multiple low-cost, less-reliable disk drives components into a logical unit where all drives in the array are Interdependent. This is known to all, array rrdnsround robin domain name service (RRDNS) is a method to distribute load across application servers. it is implemented by creating multiple A records with the same name and different ip addresses in the zone file of a Dns server. Polling DNS. A domain name corresponds to multiple IPs, which provide services in turn. trusted storage poola storage pool is a trusted network of Storage servers. when you start the first server, the storage pool consists of that server alone. When you first start a server A, Storage pooL only by a self-made,, on a above through the order to add storage server b,c,d such as the pool, then this pool is a trustworthy network, we call A trusted network of storage serversuserspaceapplications running in user space don ' t directly interact with hardware, instead using the kernel to moderate access. userspace applications are generally more portable than Applications in kernel space. gluster is a user space application . Gluster is a user-space-level service with high portability. volumea volume is a logical collection of bricks. most of the gluster management operations happen on the Volume. A volume logically consists of n bricks, for example, we create a volume gv0, which can include a-e on these 5 servers/brick1-/brick5vol file.vol files are configuration files used by glusterfs process. volfiles will be usually located&nbsP;at /var/lib/glusterd/vols/volume-name/. eg:vol-name-fuse.vol,export-brick-name.vol,etc. sub-volumes in the .vol files are present in the bottom-up approach and then after tracing forms a tree structure, Where in the hierarchy last comes the client volumes.glusterfs This process will use the " . vol "File as a configuration file, usually in this location:/var/lib/glusterd/vols/volume-name/. clientthe machine which mounts the volume (this may also be A server). Client, mount the server-side storage serverthe machine which hosts the actual file System in which the data will be stored. Storage node server, where data is stored replicatereplicate is generally done to make a redundancy of the storage for data availability. Copy mode, similar to RAID1, provides redundant mirroring.
Ii. type of volume (Types of Volumes)
1. Distributed volume (Distributed Glusterfs Volume)
Like RAID0, files are scattered, but data is not striped. can easily expand storage capacity, data reliability, can only rely on the protection of the lower level. This type is taken by default, and data is transmitted using TCP. Command: Gluster volume create new-volname [transport [TCP | rdma | tcp,rdma]] new-brick ... Create a volume with 4 storage nodes, try: # Gluster Volume Create Test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4creation of Test-volume have been successfulplease start the volume to access Data View volume Information: # Gluster Volume Infovolume name:test-volumety Pe:DistributeStatus:CreatedNumber of bricks:4transport-type:tcpbricks:brick1:server1:/exp1brick2:server2:/ Exp2brick3:server3:/exp3brick4:server4:/exp4
2. Mirrored volume (Replicated Glusterfs Volume)
Similar to RAID1, the data has n copies, lost 1, a short time does not matter, as long as there are 1 copies available. Command: Gluster volume create new-volname [replica COUNT] [Transport [TCP | rdma | tcp,rdma]] new-brick ... Create a volume, have 2 copies, try: # gluster Volume Create Test-volume Replica 2 transport TCP SERVER1:/EXP1 server2:/exp2creation of Test-vol Ume have been successfulplease start the volume to access datan a copy, you need n corresponding storage nodes.
3. Distributed mirrored volumes
Similar to the RAID10, combining 1 and 2 features. Files are scattered over multiple mirrored volumes (made up of bricks) if we have 8 bricks that require 2 copies, then 8, each 2 of which make up a mirror, there are 4 data volumes, which means that 4 (data block) x2 (copy) pattern is similar, we require 4 copies, then 8, Each 4 consists of one mirror, at which time there are 2 data volumes, which means 2 (data block) x4 (Dungeon) Mode command: Gluster volume create new-volname [replica COUNT] [Transport [TCP | rdma | tcp,r DMA]] New-brick ... Create a volume with 4 storage nodes, where the number of replicas is 2, try: # gluster Volume Create Test-volume Replica 2 transport TCP SERVER1:/EXP1 SERVER2:/EXP2 serve R3:/exp3 server4:/exp4creation of Test-volume have been successfulplease start the volume to access data nodes 1 and 2 make up a mirrored volume V1 nodes 3 and 4 Compose a mirrored volume V2 then the files are scattered on V1 and v2.
4. Striped Reel
Similar to 1, but data stripe. Imagine a movie file 2G, stored in a brick by multiple clients with frequent and simultaneous access to such a scenario. The load is certainly not low. By dividing this 2G file into chunks of data (divided into N parts, n=1 volumes of brick), it is stored in different brick, can distribute the load, and the file can be accessed more quickly, but there is no redundant image. Command: Gluster volume create new-volname [stripe COUNT] [Transport [TCP | dma | TCP,RDMA]] new-brick ... Create a volume, striped into 2 data blocks: # gluster Volume Create Test-volume Stripe 2 Transport TCP SERVER1:/EXP1 server2:/exp2creation of Test-vo Lume have been successfulplease start the volume to access data
5. Distributed Striped Tape
Similar to 4, but striped data is scattered in more bricks. The number of bricks is twice times (2N) of the number of striped data blocks, so twice times the number of BRICKS commands is required when expanding: Gluster volume create new-volname [stripe COUNT] [Transport [TCP | RDMA | TCP,RDMA]] New-brick ... Create a volume, stripe 4 data blocks, spread over 8 storage nodes # Gluster volume Create Test-volume Stripe 4 transport TCP SERVER1:/EXP1 SERVER2:/EXP2 server3:/e XP3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8creation of Test-volume has been Successfulplease start the volume to access data.
Third, the structure
For translation, it is recommended to read the original text (annex Doc:glusterfs-architecture.docx)
ZYXW, reference
1, the official website doc
http://gluster.readthedocs.org/en/latest/Quick-Start-Guide/Quickstart/
http://gluster.readthedocs.org/en/latest/Quick-Start-Guide/Terminologies/
Http://gluster.readthedocs.org/en/latest/Quick-Start-Guide/Architecture/
Preliminary discussion on glusterfs-terminology and architecture