diff options
| author | anand <anand.panchdhari@gmail.com> | 2025-11-29 23:27:13 +0530 |
|---|---|---|
| committer | anand <anand.panchdhari@gmail.com> | 2025-11-29 23:27:13 +0530 |
| commit | c1114a5e52c43dbebb363913ecc1af4d62dca557 (patch) | |
| tree | 5facbef09fd5e79df55d2d83548dbe387bfcc0ac /unit3/unit3.typ | |
| parent | 77cef6e1055cf2e0bb5417e5b4b10763c4da5292 (diff) | |
Finished storage, now only network is left
Diffstat (limited to 'unit3/unit3.typ')
| -rw-r--r-- | unit3/unit3.typ | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/unit3/unit3.typ b/unit3/unit3.typ index e85107f..ad9b29c 100644 --- a/unit3/unit3.typ +++ b/unit3/unit3.typ @@ -204,3 +204,116 @@ _Parity is a RAID technique to protect striped data from drive failure by perfor - Storage system has OSD storage component. - This component manages access to the object on the storage system. - OSD storage component converts object-level request to block-level request. +// #pagebreak() +== Storage System Architecture +- Critical design consideration for building cloud infrastructure. +- Provider must choose additional storage and ensure capacity to maintain overall performance of the environment. +- Based on data access methods. +=== Types of storage system architectures. +==== Block-Based storage system. +#figure( + image("./assets/blockedbasedstoragesystem.png") +) +- Enables the creation and assigning of storage volumes to compute systems. +- The compute OS discovers these storage volumes as local drives. +- A file system can be created on these storage volumes. +- Block-based storage system consists of: + 1. *Front-end controller* + - This provides interface between storage system and compute system. + - Typically, redundant controllers with additional ports are present for high availability. + - Each controller has processing logic that executes approximate transport protocol for storage connections. + - These controllers route data to and from a cache memory via an internal data bus. + 2. *Cache memory* + - Semiconductor memory where data is placed temporarily to reduce time required to service I/O requests from the compute system. + - Improves performance by isolating compute from mechanical delays of disk writes. + - Accessing data from chache takes less than a milisecond. + - If requested data is found in cache, it is a cache hit else it is a cache miss. + - Write operation is implemented in two ways: + 1. In *write-back*, data of several write operations are placed in cache and acknowledgement is sent immediatly. Data is written to disk later. + 2. In *write-through*, data is placed in cache and immediatly written to disk, and acknowledgement is sent to compute system. + 3. *Back-end controller* + - Provides an interface between cache and physical disk. + - The data in the cache is sent to the backed which routes it to the destination disk. + 4. *Physical disk* + - Connect to ports on the back-end. + - In some cases the front-end, cache, back-end are integrated on a single board called a storage controller. +==== File-based storage system +#figure( + image("./assets/filebasedstorage.png") +) +- Dedicated high performance storage aka NAS with internal or external storage. +- Enables clients to share files over IP network. +- Supports NFS and CIFS protocols to work with Unix and Windows systems. +- Uses a specialized OS that is optimal for file I/O. +- Consolidates distributed data into a large, centralized data pool accessable to and shared by hetrogeneous clients and applications across a network. +- Results in efficient management and improved storage utilization. +- Lowers operating and maintenance costs. +===== NAS deployment options +- Two common ways of NAS deployment: + 1. *Scale-up/Traditional* + - Scales capacity and performance of singular NAS system. + - Involves upgrading or adding components to the NAS. + - Fixed ceiling for capacity and performance. + 2. *Scale-out* + - Designed to address Big Data. + - Enables creation of clustered NAS systems by pooling multiple processing and storage nodes. + - Works as a single NAS system and is managed centrally. + - Capacity can be increased by adding nodes to it. + - Each added node increases aggregated disk, cache, processor, network capcity of the cluster. + - Can be non-disruptivly added to the server. +==== Object-Based Storage +#figure( + image("./assets/objectbasedstorage1.png") +) +- Stores data in the form of objects based on the content and other attributes rather than the name and location. +- Objects contain user data, metadata, user defined attributes. +- Additional metadata allows for optimized search, retention and deletion of objects. +- Each object identified by an object ID. This allows easy access to objects without having to specify storage location. +- Object ID is generated using specialized algorithms on the data the garentees all object names are unique. +- Changes result in new object IDs. This makes it prefered for long term archiving to meet regulatory or complience requirements. +- Uses a flat, non-hierarchial address space to store data, providing flexibility to scale massively. +- Providers leverage object-based storage to offer Storage aaS because of it's inherent security, scalability and automated data management capability. +- Supports web service access via REST and SOAP. +===== Components of Object-Based Storage +#figure( + image("./assets/objectbased2.png") +) +1. *Nodes*\ + - Node is a server that runs the OBS environment and provides services to store, retrieve, and manage data in the system. + - OBS is composed of one or more nodes. + - Each node has two key services: + 1. Metadata + - Responsible for generating the object ID from the contents of a file. + - Maintains the mapping between object IDs and file system namespace. + 2. Storage service + - Manages a set of drives on which data is stored . +2. *Private network*\ + - Nodes connect to the storage via the private network. + - Private network provides node-to-node connectivity and node-to-storage connectivity. +3. *Storage*\ + - Application server accesses the object-based storage node to store and retrieve data over an external network. + - In some implementations the metadata might reside on application server or a seperate server. +==== Unified Storage System +#figure( + image("./assets/unifiedstorage.png") +) +- Consolidates block, file, and object-based model into one model. +- Supports multiple protocols for data access. +- Managed using a single interface. +- Consists of the following components: + 1. *Storage controller*\ + - Provides block-level access to compute systems through various protocols. + - Contains front-end ports for direct block access. + - Responsible for managing the back-end pool. + - Configures storage volumes and presents them to the NAS head, OSD node, and compute systems. + 2. *NAS head*\ + - Dedicated file server that provides access to NAS clients. + - Connects to the storage via the storage controller. + - Usually two or more are present for redundency. + - Configures file systems on assigned volumes, creates NFS, CIFS, or mixed shares, and exports and shares to the NAS clients. + 3. *OSD node*\ + - Also accesses storage through storage controller. + - Volumes assigned on OSD appear node appear as physical disks. + - These disks are configured by the OSD node to store object data. + 4. *Storage*\ += Network |
