I bought one of those devices, specifically the DS212j, to use as network storage (NAS for you alphabet soup lovers) for my home. I slapped two green 2TB Western Digital drives in it, set them up as a raid 1, created a 100GB (which probably means using the fake gigabyte, not the power-of-two one) NFS share partition for users, and off I went. Now, since I used its default clickety-click interface (it's pronounced web-based), when I ssh into the device (I am a bit of a command-line (CLI; I did not forget you) kinda bloke), I found it is using the standard Linux lvm (ok, this one I actually use) and named the logical volume I created as volume1, formatted as ext4 mounted as /volume_1. Even though I personally like to call my volumes after their function and try to avoid mounting stuff on the root, I can live with that. But, the point is ext4 and lvm involved. i.e. sane stuff. I like that. It also means that even though a lot of those devices use a scaled down version of linux, this one is not as scaled down as you would be led to believe.
This morning I received a email from the device. Since I want to make this post look long and important, I will post it here in glorious quadrovision:
Dear user, The available space of volume 1 on spindizzy is running out; please delete some files to free space. Total capacity: 98.43 GB Available capacity: 0.98 GB (1.00%) Sincerely, Synology DiskStation
Hmmm, that sounds kinda bad. What should I do? Well, I am lazy. Do you remember when I mentioned the sane stuff Synology is using in this device? Let's do some exploring since I still need to fill more space:
spindizzy> pvs PV VG Fmt Attr PSize PFree /dev/md2 vg1 lvm2 a- 1.81T 1.72T spindizzy> vgs VG #PV #LV #SN Attr VSize VFree vg1 1 2 0 wz--n- 1.81T 1.72T spindizzy> lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert syno_vg_reserved_area vg1 -wi-a- 12.00M volume_1 vg1 -wi-ao 100.00G spindizzy>
So, the entire raid (minus whatever the device needs to do its thing) is a single physical volume which is allocated as a single volume group (cleverly called vg1, inside which is our logical volume. And, as the email said and df -h can show,
/dev/vg1/volume_1 98.4G 97.4G 916.5M 99% /volume1
rather full. Well, how about if we take care of that lvm-style?
spindizzy> lvextend -L +100G /dev/vg1/volume1 Logical volume volume1 not found in volume group vg1 spindizzy> lvextend -L +100G /dev/vg1/volume_1 Extending logical volume volume_1 to 200.00 GB Logical volume volume_1 successfully resized spindizzy> resize2fs /dev/vg1/volume_1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg1/volume_1 is mounted on /volume1; on-line resizing required old desc_blocks = 7, new_desc_blocks = 13 Performing an on-line resize of /dev/vg1/volume_1 to 52428800 (4k) blocks. The filesystem on /dev/vg1/volume_1 is now 52428800 blocks long. spindizzy> df -h Filesystem Size Used Available Use% Mounted on /dev/md0 2.3G 425.6M 1.8G 19% / /tmp 121.8M 264.0K 121.5M 0% /tmp /dev/vg1/volume_1 196.9G 97.4G 99.2G 50% /volume1 spindizzy>
What I did was to add an extra 100G, effectively doubling its size, to the logical volume volume_1. And all that was done live. Exciting huh? For those of you who do not dabble with lvm a lot, one of its nicest features is that you can increase the size of a logical volume life, without needing to unmount it first. All you need is to have some free space in the volume group (the VFree column). Going the other way around is a bit more challenging, for you need to umount the volume first, but can be done. I will later write an article on monkeying with lvm, I promise (remind me!).
Some of you might be like big deal, you could probably have done that using the web interface, just like in many other equivalent devices. What's so special about the a Linux-based network storage thingie? Well, the fact they can (either from factory or by adding the required packages) use lvm means I do not need to recreate a partition whenever I need more space, which was a problem with other devices I had. And, I can not only take care of that through the command line instead of needing a web browser, but also I could write a script to do that for me. Are they the only ones doing it? I doubt, but it reminds me why when shopping for a NAS I look for one that runs Linux in some shape or form.