summaryrefslogtreecommitdiff
path: root/unit3/unit3.typ
diff options
context:
space:
mode:
Diffstat (limited to 'unit3/unit3.typ')
-rw-r--r--unit3/unit3.typ113
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