Snaszy NAS a 3D printed NAS for Raspberry Pi Snaszy NAS is a 3D printed NAS for Raspberry Pi, designed for 2.5 inch drives. It uses BTRFS for RAID and is powered by a Raspberry Pi 5. 11 April 2025 9 minute read By Kevin McAleer Share this article on Table of Contents What is Snaszy NAS?FeaturesGalleryIt fits!Tray PrototypeDrive baysFinished TrayPrusa Core OnePrinting Drive bay holderTop viewPi PoweredDramatic PoseCloseupChihuahua for scaleRear viewSynology for scalePower RoutingWhat is BTRFS?DesignBill of MaterialsSetting up the NASInstall BTFRSSetup a driveFormat driveMount driveCreate a sub volumne (for snapshoting)Create a snapshotAdd a second driveBalance driveAdd a 3rd Drive and set to RAID5Making snapshots immutableWhat is an immutable snapshot?Setup Filesharing with SambaInstall SambaAdd to SambaRestart SambaCockpitInstall CockpitWhat is Cockpit?Accessing CockpitNext Steps Tags: NAS raspberrypi Difficulty: beginner Category: raspberrypi Home Blog Snaszy nas a 3d printed nas for raspberry pi Snaszy NAS a 3D printed NAS for Raspberry Pi Snaszy NAS is a 3D printed NAS for Raspberry Pi, designed for 2.5 inch drives. It uses BTRFS for RAID and is powered by a Raspberry Pi 5. 11 April 2025 | 9 minute read | By Kevin McAleer | Share this article on Video For every project I create, I often make a corresponding YouTube video. Sometimes, there might be more than one video for a single project. You can find these videos in this section. Explore more through this this dedicated video. What is Snaszy NAS? Snaszy NAS is a 3D printed NAS for Raspberry Pi, designed for 2.5 inch drives. It uses BTRFS for RAID and is powered by a Raspberry Pi 5. The design is compact and easy to assemble, making it a great option for those looking to build their own, affordable NAS. It looks awesome, too. Features 3D printed case 2.5 inch drive support BTRFS RAID support Powered by Raspberry Pi 5 Compact design Easy to assemble Affordable Open source design Compatible with Raspberry Pi OS Gallery Here are some pictures of Snaszy NAS in various stages of design and construction. It fits! Tray Prototype Drive bays Finished Tray Prusa Core One Printing Drive bay holder Top view Pi Powered Dramatic Pose Closeup Chihuahua for scale Rear view Synology for scale Power Routing What is BTRFS? Btrfs (B-tree file system) is a modern copy-on-write (CoW) filesystem for Linux. It is designed to address the shortcomings of traditional filesystems like ext4, providing advanced features such as snapshots, subvolumes, and built-in RAID support. Btrfs is particularly well-suited for use in NAS (Network Attached Storage) systems, as it allows for easy management of multiple drives and provides data redundancy through RAID configurations. Btrfs supports various RAID levels, including RAID 0, RAID 1, RAID 5, RAID 6, and RAID 10. It also allows for dynamic resizing of volumes and the ability to add or remove drives from a RAID array without downtime. Btrfs is a powerful and flexible filesystem that is ideal for use in NAS systems, providing advanced features and data protection capabilities. Design Snaszy NAS is designed to be compact and easy to assemble. The case is 3D printed and can be printed using a standard FDM printer. The design is open source and can be modified to suit your needs. The NAS has 4 drive bays for 2.5 inch drives either the slimmer 7mm style or full 15mm drives. Bill of Materials To build your own Snaszy NAS, you will need the following parts: Item Description Price Qty Total Raspberry Pi Raspberry Pi 5 4Gb £57.30 1 £57.30 Fan Active cooling fan £4.50 1 £4.50 5Tb Drive LaCie Rugged Mini 5Tb - or whatever you have! £159.99 2 £319.98 Power 45W USB-C Power Supply £14.40 1 £14.40 SSD to USB USB to SATA Adapter £6.00 2 £12.00    Total £407.18 The hard disks are the most expensive part of the build, but you can use any 2.5 inch drives you have lying around. The LaCie drives are rugged and portable, making them a great option for a NAS. Setting up the NAS Next we’ll setup the NAS using BTRFS and Samba. This will allow you to share files over the network and access them from other devices. Install BTFRS # Install BTFRS sudo apt install btrfs-progs Setup a drive sudo fdisk /dev/sda Inside fdisk: Press g to create a new empty GPT partition table. Press n to add a new partition (accept defaults to use the whole disk). Press w to write the table to disk and exit. Format drive # Double-check this is the correct device/partition before running! sudo mkfs.btrfs /dev/sda1 or add a label for easier identification sudo mkfs.btrfs -L MyBtrfsDrive /dev/sda1 Mount drive sudo mount /dev/sda1 /mnt/my_btrfs_drive Create a sub volumne (for snapshoting) # List existing subvolumes sudo btrfs subvolume list /mnt/my_btrfs_drive #create a subvolume sudo btrfs subvolume create /mnt/my_btrfs_drive/data Create a snapshot # Optional: Create a directory to hold snapshots if it doesn't exist sudo mkdir/mnt/my_btrfs_drive/snapshots # Create the snapshot sudo btrfs subvolume snapshot /mnt/my_btrfs_drive/data /mnt/my_btrfs_drive/snapshots/data_$(date +%Y-%m-%d_%H-%M-%S) Add a second drive sudo btrfs device add /dev/sdb /mnt/mybtrfs # Validate the additional drive sudo btrfs filesystem show /mnt/mybtrfs Balance drive Balance and Convert to RAID 1: Now, start a balance operation to convert both data (-d) and metadata (-m) chunks from the current profile (single) to raid1. -dconvert=raid1: Convert data chunks to RAID 1 profile. -mconvert=raid1: Convert metadata chunks to RAID 1 profile. This process reads existing data/metadata chunks and writes them back according to the new profile across the available devices. The filesystem remains online and usable during the balance, although performance might be impacted. sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/mybtrfs Monitor the Balance (Optional but Recommended): Balances can take a long time, depending on the amount of data and disk speed. You can check the status in another terminal: sudo btrfs balance status /mnt/mybtrfs Add a 3rd Drive and set to RAID5 sudo btrfs device add /dev/sdc /mnt/mybtrfs Convert the mirror (RAID1) to RAID5 and balance the drive sudo btrfs balance start -dconvert=raid5 -mconvert=raid1 /mnt/mybtrfs Making snapshots immutable What is an immutable snapshot? An immutable snapshot is a snapshot that cannot be modified or deleted. This is useful for protecting important data and ensuring that it remains unchanged. Let’s say you created a snapshot of /home like this: # sudo btrfs subvolume snapshot /home /.snapshots/home_backup_20250413 # To make it read-only (immutable): sudo btrfs property set /.snapshots/home_backup_20250413 ro true You can check that the snapshot is read-only by running: sudo btrfs property get /.snapshots/home_backup_20250413 ro This should return ro = true, indicating that the snapshot is read-only. You can also check the status of the snapshot by running: sudo btrfs subvolume show /.snapshots/home_backup_20250413 This will show you the details of the snapshot, including its ID, creation time, and whether it is read-only or not. This will make the snapshot read-only, preventing any changes to it. You can still access the snapshot and read its contents, but you cannot modify or delete it. Setup Filesharing with Samba Samba is a free software re-implementation of the SMB networking protocol, and was originally developed by Andrew Tridgell. It allows for file and print sharing between computers running Windows and those running Unix or Linux. Install Samba To install Samba on your Raspberry Pi, run the following command: sudo apt update && sudo apt upgrade sudo apt install samba Add to Samba To add a new share to Samba, open the Samba configuration file in a text editor: sudo nano /etc/samba/smb.conf Add the following lines to the end of the file: [MyBtrfsDrive] path = /mnt/my_btrfs_drive valid users = pi read only = no browsable = yes public = yes This will create a new share called MyBtrfsDrive that points to the /mnt/my_btrfs_drive directory. The valid users line specifies which users are allowed to access the share (so make sure that matches your user setup). The read only line specifies whether the share is read-only or not. The browsable line specifies whether the share should be visible in the network browser. The public line specifies whether the share is public or not. To save the changes, press CTRL + X, then Y, and then Enter. Restart Samba To apply the changes, restart the Samba service: sudo systemctl restart samba You can check the status of the Samba service with the following command: sudo systemctl status samba Cockpit Cockpit is a web-based server management tool that makes it easy to manage your server from a web browser. It provides a user-friendly interface for managing system resources, services, and configurations. Install Cockpit To install Cockpit on your Raspberry Pi, run the following command: sudo apt install cockpit What is Cockpit? Cockpit is a web-based server management tool that makes it easy to manage your server from a web browser. It provides a user-friendly interface for managing system resources, services, and configurations. Accessing Cockpit To access Cockpit, open a web browser and navigate to http://<your-raspberry-pi-ip>:9090. You will be prompted to log in with your Raspberry Pi username and password. Next Steps Now that you have your Snaszy NAS up and running, you can start using it to store and share files. You can also explore other features of BTRFS, such as snapshots and subvolumes, to further enhance your NAS experience. 3D Models Here are the 3D printable STL files: STL List Bottom - snaszy_bottom.stl Top - snaszy_top.stl Back - snaszy_back.stl Front - snaszy_front.stl Pi 5 Tray - pi_5_tray.stl Frame - snaszy_frame.stl Flap - snaszy_flap.stl Lid - snaszy_lid.stl Base - snaszy_base.stl Bottom - snaszy_bottom.stl Download snaszy_bottom.stl Top - snaszy_top.stl Download snaszy_top.stl Back - snaszy_back.stl Download snaszy_back.stl Front - snaszy_front.stl Download snaszy_front.stl Pi 5 Tray - pi_5_tray.stl Download pi_5_tray.stl Frame - snaszy_frame.stl Download snaszy_frame.stl Flap - snaszy_flap.stl Download snaszy_flap.stl Lid - snaszy_lid.stl Download snaszy_lid.stl Base - snaszy_base.stl Download snaszy_base.stl Liked this article? You might like these too. How to install an NVMe drive on a Raspberry Pi 5 In this article we'll take a quick look at what NVMe is all about, and how to install an NVMe drive on a Raspberry Pi 5. LidarBot LidarBot is a 3D printed robot that uses a Raspberry Pi Pico and Lidar to navigate its environment. It is designed for educational purposes and can be used to teach programming and robotics. Waveshare CM5 boards The Waveshare Compute Module 5 boards are a great option for those looking to use the Compute Module 5 in a compact design. They are affordable and have a number of features that make them ideal for a variety of projects.
Snaszy NAS a 3D printed NAS for Raspberry Pi Snaszy NAS is a 3D printed NAS for Raspberry Pi, designed for 2.5 inch drives. It uses BTRFS for RAID and is powered by a Raspberry Pi 5. 11 April 2025 9 minute read By Kevin McAleer Share this article on Table of Contents What is Snaszy NAS?FeaturesGalleryIt fits!Tray PrototypeDrive baysFinished TrayPrusa Core OnePrinting Drive bay holderTop viewPi PoweredDramatic PoseCloseupChihuahua for scaleRear viewSynology for scalePower RoutingWhat is BTRFS?DesignBill of MaterialsSetting up the NASInstall BTFRSSetup a driveFormat driveMount driveCreate a sub volumne (for snapshoting)Create a snapshotAdd a second driveBalance driveAdd a 3rd Drive and set to RAID5Making snapshots immutableWhat is an immutable snapshot?Setup Filesharing with SambaInstall SambaAdd to SambaRestart SambaCockpitInstall CockpitWhat is Cockpit?Accessing CockpitNext Steps Tags: NAS raspberrypi Difficulty: beginner Category: raspberrypi
What is Snaszy NAS? Snaszy NAS is a 3D printed NAS for Raspberry Pi, designed for 2.5 inch drives. It uses BTRFS for RAID and is powered by a Raspberry Pi 5. The design is compact and easy to assemble, making it a great option for those looking to build their own, affordable NAS. It looks awesome, too. Features 3D printed case 2.5 inch drive support BTRFS RAID support Powered by Raspberry Pi 5 Compact design Easy to assemble Affordable Open source design Compatible with Raspberry Pi OS Gallery Here are some pictures of Snaszy NAS in various stages of design and construction. It fits! Tray Prototype Drive bays Finished Tray Prusa Core One Printing Drive bay holder Top view Pi Powered Dramatic Pose Closeup Chihuahua for scale Rear view Synology for scale Power Routing What is BTRFS? Btrfs (B-tree file system) is a modern copy-on-write (CoW) filesystem for Linux. It is designed to address the shortcomings of traditional filesystems like ext4, providing advanced features such as snapshots, subvolumes, and built-in RAID support. Btrfs is particularly well-suited for use in NAS (Network Attached Storage) systems, as it allows for easy management of multiple drives and provides data redundancy through RAID configurations. Btrfs supports various RAID levels, including RAID 0, RAID 1, RAID 5, RAID 6, and RAID 10. It also allows for dynamic resizing of volumes and the ability to add or remove drives from a RAID array without downtime. Btrfs is a powerful and flexible filesystem that is ideal for use in NAS systems, providing advanced features and data protection capabilities. Design Snaszy NAS is designed to be compact and easy to assemble. The case is 3D printed and can be printed using a standard FDM printer. The design is open source and can be modified to suit your needs. The NAS has 4 drive bays for 2.5 inch drives either the slimmer 7mm style or full 15mm drives. Bill of Materials To build your own Snaszy NAS, you will need the following parts: Item Description Price Qty Total Raspberry Pi Raspberry Pi 5 4Gb £57.30 1 £57.30 Fan Active cooling fan £4.50 1 £4.50 5Tb Drive LaCie Rugged Mini 5Tb - or whatever you have! £159.99 2 £319.98 Power 45W USB-C Power Supply £14.40 1 £14.40 SSD to USB USB to SATA Adapter £6.00 2 £12.00    Total £407.18 The hard disks are the most expensive part of the build, but you can use any 2.5 inch drives you have lying around. The LaCie drives are rugged and portable, making them a great option for a NAS. Setting up the NAS Next we’ll setup the NAS using BTRFS and Samba. This will allow you to share files over the network and access them from other devices. Install BTFRS # Install BTFRS sudo apt install btrfs-progs Setup a drive sudo fdisk /dev/sda Inside fdisk: Press g to create a new empty GPT partition table. Press n to add a new partition (accept defaults to use the whole disk). Press w to write the table to disk and exit. Format drive # Double-check this is the correct device/partition before running! sudo mkfs.btrfs /dev/sda1 or add a label for easier identification sudo mkfs.btrfs -L MyBtrfsDrive /dev/sda1 Mount drive sudo mount /dev/sda1 /mnt/my_btrfs_drive Create a sub volumne (for snapshoting) # List existing subvolumes sudo btrfs subvolume list /mnt/my_btrfs_drive #create a subvolume sudo btrfs subvolume create /mnt/my_btrfs_drive/data Create a snapshot # Optional: Create a directory to hold snapshots if it doesn't exist sudo mkdir/mnt/my_btrfs_drive/snapshots # Create the snapshot sudo btrfs subvolume snapshot /mnt/my_btrfs_drive/data /mnt/my_btrfs_drive/snapshots/data_$(date +%Y-%m-%d_%H-%M-%S) Add a second drive sudo btrfs device add /dev/sdb /mnt/mybtrfs # Validate the additional drive sudo btrfs filesystem show /mnt/mybtrfs Balance drive Balance and Convert to RAID 1: Now, start a balance operation to convert both data (-d) and metadata (-m) chunks from the current profile (single) to raid1. -dconvert=raid1: Convert data chunks to RAID 1 profile. -mconvert=raid1: Convert metadata chunks to RAID 1 profile. This process reads existing data/metadata chunks and writes them back according to the new profile across the available devices. The filesystem remains online and usable during the balance, although performance might be impacted. sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/mybtrfs Monitor the Balance (Optional but Recommended): Balances can take a long time, depending on the amount of data and disk speed. You can check the status in another terminal: sudo btrfs balance status /mnt/mybtrfs Add a 3rd Drive and set to RAID5 sudo btrfs device add /dev/sdc /mnt/mybtrfs Convert the mirror (RAID1) to RAID5 and balance the drive sudo btrfs balance start -dconvert=raid5 -mconvert=raid1 /mnt/mybtrfs Making snapshots immutable What is an immutable snapshot? An immutable snapshot is a snapshot that cannot be modified or deleted. This is useful for protecting important data and ensuring that it remains unchanged. Let’s say you created a snapshot of /home like this: # sudo btrfs subvolume snapshot /home /.snapshots/home_backup_20250413 # To make it read-only (immutable): sudo btrfs property set /.snapshots/home_backup_20250413 ro true You can check that the snapshot is read-only by running: sudo btrfs property get /.snapshots/home_backup_20250413 ro This should return ro = true, indicating that the snapshot is read-only. You can also check the status of the snapshot by running: sudo btrfs subvolume show /.snapshots/home_backup_20250413 This will show you the details of the snapshot, including its ID, creation time, and whether it is read-only or not. This will make the snapshot read-only, preventing any changes to it. You can still access the snapshot and read its contents, but you cannot modify or delete it. Setup Filesharing with Samba Samba is a free software re-implementation of the SMB networking protocol, and was originally developed by Andrew Tridgell. It allows for file and print sharing between computers running Windows and those running Unix or Linux. Install Samba To install Samba on your Raspberry Pi, run the following command: sudo apt update && sudo apt upgrade sudo apt install samba Add to Samba To add a new share to Samba, open the Samba configuration file in a text editor: sudo nano /etc/samba/smb.conf Add the following lines to the end of the file: [MyBtrfsDrive] path = /mnt/my_btrfs_drive valid users = pi read only = no browsable = yes public = yes This will create a new share called MyBtrfsDrive that points to the /mnt/my_btrfs_drive directory. The valid users line specifies which users are allowed to access the share (so make sure that matches your user setup). The read only line specifies whether the share is read-only or not. The browsable line specifies whether the share should be visible in the network browser. The public line specifies whether the share is public or not. To save the changes, press CTRL + X, then Y, and then Enter. Restart Samba To apply the changes, restart the Samba service: sudo systemctl restart samba You can check the status of the Samba service with the following command: sudo systemctl status samba Cockpit Cockpit is a web-based server management tool that makes it easy to manage your server from a web browser. It provides a user-friendly interface for managing system resources, services, and configurations. Install Cockpit To install Cockpit on your Raspberry Pi, run the following command: sudo apt install cockpit What is Cockpit? Cockpit is a web-based server management tool that makes it easy to manage your server from a web browser. It provides a user-friendly interface for managing system resources, services, and configurations. Accessing Cockpit To access Cockpit, open a web browser and navigate to http://<your-raspberry-pi-ip>:9090. You will be prompted to log in with your Raspberry Pi username and password. Next Steps Now that you have your Snaszy NAS up and running, you can start using it to store and share files. You can also explore other features of BTRFS, such as snapshots and subvolumes, to further enhance your NAS experience.