Sunday, 23 June 2013

Re-imagining Windows 8.1 (part 1)

The marketing tagline for the Windows 8 release was 'Windows re-imagined'.

Many things were changed, most notably the introduction of ModernUI and the start screen. However some fundamental aspects haven't be re-imagined at all. The file system layout hasn't changed, and it could certainly use updating.

Separating the OS & Data

One area where Windows still needs improving is separating the data and the OS. Windows 8 has the 'refresh my PC' option, but you still need to manually re-install some programs. Separating the OS and data has a number of advantages, and if Microsoft are serious about 're-imaging Windows' then this would be a good place to start.

Having the OS separated from the data allows users to 'nuke' the OS if something really bad happens without having to worry about their data or programs. SSDs are becoming common and ideally you want to put data on them that increases the overall system performance.

Currently if you have both an SSD and a HDD you have to manage your where your data lives manually. Typically the OS is put on the SSD, allowing faster boot times, but this has the side effect that the Users directory is now on the SSD. This means that every user will have their home directory and therefore all their data placed on the SSD by default. The limited storage capacity of SSDs means that unless you are aware of this, you can quickly run out of space, whilst the HDD with it's comparatively large capacity sits empty.

It is possible to use the libraries feature to have data saved to the HDD, but you have know this from the outset, or you need to move your data once you realise your hard drive is not being utilized effectively.

Re-Imagining the file system layout

Windows still use the antiquated system of drive letters. It still needs to support drive letters for legacy programs, but the time has come time to kill drive letters. The Unix way of using mount points is simply a better paradigm, NTFS supports volume mount points (as does ReFS), allowing another volume to mounted under a directory.

Using mount points would allow the each of the following directories to be on a separate volume.

/Program Files

Having each of these directories on a separate volume allows users to get the most of their available storage. The /Windows volume could be a volume on the SSD, whilst the /Program Files and /Users directories could be located on the HDD.

By separating the data this way the user has realized a tangible advantage. But what if the user only has a HDD?

It still makes sense to have 3 volumes. Having 3 volumes does nothing to protect the users data, the data is still only on one device (back-ups are the only thing that can help when your HDD dies, or be prepared to pay for some expensive data recovery from a professional company) but it does allow the OS to be nuked without affecting /Program Files or /Users.

But the real advantages of acclimatizing users to this volume scheme comes with virtualised storage.

At the moment I wouldn't recommend anyone use the Storage Spaces feature in Windows 8, it's slow in many cases, volumes go offline when they are full, data isn't re-balanced when drives are added. Storage Spaces is a promising technology but it needs a lot of work.

Imagine a better version of Storage Spaces where these issues don't exist, using the scheme described above, but instead of volumes, storage spaces.

In this scenario the storage pool is comprised of both the SSD and the HDD. Storage spaces is smart knows that the SSD is fast, but has limited capacity and the HDD is relatively slow but has a much bigger capacity.

The pool is then carved into 3 thin provisioned spaces:

/Program Files

Which device(s) the data lives on is managed by Storage Spaces, which would optimally place the OS on the SSD, programs and user data on the HDD. However if file-system is profiled then Storage Spaces might determine that Photoshop is used regularly and it takes a long time to start up (as it's being loaded from the HDD). Being smart Storage Spaces relocates Photoshop within the /Program Files space to sit in the on the SSD part of the pool.

Because the spaces are thin provisioned they can grow as I add devices. If I reach the point where Windows  updates have made the /Windows space full Photoshop could be relocated back to the HDD. In order to make space for more updates.

When I add another HDD storage spaces could prompt the user if they want to have a degree of redundancy or just have more space.

Having a layout scheme like this also works for tablets and phones, if the user needs to perform a factory reset, they shouldn't loose their programs or personal data, and the file system layout looks the same across devices.

It's time to kill drive letters, and define a Windows file system layout that's consistent yet flexible across devices.

No comments:

Post a Comment