Have you ever wondered how a pen drive stores your favorite songs 🤔 , how an SSD makes your laptop blazing fast, or how Google Photos magically keeps your memories safe🤔🤯? The answer lies in the marvel of Storage Systems 🌟✨.
From the tiniest USB drives to the sprawling data centers powering the internet, storage systems form the foundation of modern computing⚡. They enable everything from basic file storage to advanced cloud computing, data analytics, and even artificial intelligence. Without them, our digital world would simply cease to exist. Curious to know how this invisible backbone works? Let’s dive in!
Storage System: The Essential Pillar of Computing 💪
Your Digital Memory: Imagine writing an important report, but every time you turn off your laptop, it vanishes. Without storage, your work, apps, and even your operating system wouldn't survive a reboot.
Stream Your Favorites: Your favorite movies and music are at your fingertips thanks to massive storage systems powering platforms like Netflix and Spotify, storing and streaming endless content.
AI's Brainpower: Artificial intelligence learns by processing data—without storage, AI couldn't access or analyze the massive datasets needed to power your smart assistants or recommendation engines.
The Lifesaver: Lost your phone? Cloud storage ensures your memories, photos, and files are safe, giving you peace of mind and instant recovery.
Mission Critical: NASA’s Mars missions depend on robust storage to retain and transmit priceless data from millions of miles away, ensuring progress in space exploration.
Without storage, computing is like a chalkboard wiped clean every second—fascinating but utterly unusable!
Three main Types
Three main types of storage systems power our digital world, Each plays a unique role in modern computing!
Block-Based Storage
File-Based Storage
Object-Based Storage
Block Storage System 💪⚡
Block storage breaks data into fixed-sized chunks (blocks) and stores them separately with unique identifiers. These blocks can be retrieved and assembled quickly, providing high performance and flexibility.
Block storage offers high IOPS (Input/Output Operations Per Second) and low latency, making it perfect for compute-intensive tasks where speed and efficiency are critical. Its direct access nature ensures minimal delays, ideal for scenarios requiring real-time data processing.
Use Cases for Block Storage
Databases: High-performance SQL or NoSQL databases.
Virtual Machines: Backend storage for VM environments like VMware or Hyper-V.
High-Performance Applications: Real-time analytics, transaction processing systems, or enterprise ERP solutions.
Containers: Persistent storage for containerized applications in Kubernetes or Docker.
Examples of Block Storage
Amazon Elastic Block Store (EBS)
Google Persistent Disks
Microsoft Azure Managed Disks
SAN (Storage Area Network)
In answer to Our Earlier Question Pen Drive and Our SSD are also Examples of Block Storage.
File Storage System 📂🗃️
File storage organizes data in a hierarchical structure of directories and files, similar to how your computer organizes documents. It is user-friendly, making it easy to access and manage data with familiar file paths.
Key Capabilities of File Storage
Simplicity: Works seamlessly with applications needing traditional file access protocols (e.g., NFS, SMB).
Scalability: Can expand to accommodate growing datasets while retaining the directory structure.
Concurrent Access: Enables multiple users or applications to access shared files simultaneously.
Use Cases for File Storage
Content Management Systems: Hosting media assets like images, documents, or videos.
Shared File Repositories: Collaboration tools and shared drives for teams.
Web Servers: Storing and serving static website files like HTML, CSS, and images.
Examples of File Storage
Amazon Elastic File System (EFS)
Azure Files
Google Filestore
NAS (Network Attached Storage)
Object Storage System 🌐
Object storage manages data as individual objects with unique identifiers, rather than as files or blocks. It's highly scalable and designed to handle massive amounts of unstructured data, such as media files or backups.
Unique Capabilities of Object Storage
Scalability: Unlimited storage capacity, perfect for managing exabytes of data.
Metadata Customization: Allows rich metadata tagging for advanced data indexing and retrieval.
Global Accessibility: Data can be accessed over the internet via APIs, making it ideal for cloud applications.
Use Cases for Object Storage
Cloud Applications: Storing user-generated content like images and videos.
Data Backup and Archiving: Cost-effective, long-term storage for backups.
Big Data and Analytics: Storing logs or sensor data for analysis.
Streaming Services: Hosting media content for streaming platforms.
Examples of Object Storage
Amazon Simple Storage Service (S3)
Google Cloud Storage
Microsoft Azure Blob Storage
MinIO
Now, let’s dive in to have some hands-on experience with three types of storage systems in the AWS environment.
EBS(Block Storage)
Create a EC2 instance with Default Settings and Connect it as usual and Execute the Following Command to check the list of block devices
lsblk
you could see that it consists of one block storage which is responsible for booting the os and default activities.
Now let's create a New volume, attach it to EC2 instance, and use it . To Implement this I am going to use AWS console
Make Sure Both EC2 and Volume should be in the same Availablity Zone to attach them both
Now you can log in to the server and list all the block devices
Since the volume is new you need to format it and create a Filesystem on it
Now let mount point and mount our volume to the EC2 instance
Follow these steps to mount your volume permanently
blkid
Get you bulkid and write it in /etc/fstab
sudo mount -a
Extra tip 💡: If you try EBS volume of io2 you could attach it to the Multiple Instance(Only Nitro-based instance type)
EFS(File Based Storage)
The main use-case of EFS is the ability to connect with multiple instances concurrently.So I am going to create two test Instances and attach it to the EFS.
Extra tip 💡: The Key Flexibility you can get from it is Super Scalable, and if you choose the Regional option, which is the Default one, it creates a File System in all AZ to offer High availability.
Create a Security Group that allows necessary ports for our NFS and SSH connection
Let’s Create the EFS
keep the Rest as Default and Create the FIle System.
Now Select the File System and Select the Attach to get the mount Point . Let’s select Mount Via IP the IP will be Differ for Differ AZ . For Simplicity, we will be creating Instances in “us-east-1a” alone so let’s copy the mount point of us-est-1a alone.
Now Let’s log in to the Instance and Configure the necessary items to access the EFS
sudo apt update sudo apt install nfs-common #Create a mount point sudo mkdir /practicalEFS #Edit th /etc/fstab to auto mount instead of manual mount sudo nano /etc/fstab #Add the line 172.31.41.113:/ /practicalEFS nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 0 0 sudo mount -a sudo systemctl daemon-reload #Check whether the EFS got mounted by df -h
5. let’s create a file in the mounted location
cd /practicalEFS
sudo touch hello.txt
6.Now let's log in to next instance mount the EFS and Check whether the file is present
After mounting you could see
S3 (Object-based Storage)
The Object-based Storage System Offered by AWS is S3 it is one of the most widely used AWS services Let's Dive into the Demo
Create an IAM Role and Attach a policy that gives full access to S3
This was the role created by me and I have attached “AmazonS3FullAccess” which was an Amazon-managed policy if you want you could create your custom policy.
Now Spin up an EC2 instance and attach the Role to that instance
Attaching the Role is simple Select the Instance —>Actions—>Security—→Modify IAM Role That’s it
Create a S3 bucket and upload some example .txt file
Now let’s Login to our EC2 instance and try to write our text file in S3 bucket
#For performing you need to Install awscli sudo apt-get update sudo apt-get upgrade -y curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" sudo apt-get install unzip -y unzip awscliv2.zip sudo ./aws/install
echo "Hi this is Koushal After the test"|aws s3 cp - s3://myobjectstorageexample/Hello.txt
That’s it Now we have Practically Explored 3 main Storage System 🌟✨.
The Overview Comparison of Storage System:
Criteria | Object Storage | Block Storage | File Storage |
Cost | Low | Moderate | High |
Scalability | High | Limited to volume size | Moderate |
Performance | Good for sequential I/O | Excellent for random I/O | Moderate |
Use Case | Big Data, ML, BI | Databases, Real-time ETL | Shared access |
Examples | Amazon S3, GCS | Amazon EBS, Azure Disk | Amazon EFS, Filestore |
That’s it Kudos for today💪✌️. Continue Exploring 🏄♂️😎