Partitioning Advice for SSD + HHD System

Hi folks,

I am a current Debian user but I want to try out OpenSuse. I am looking for some partitioning advice from someone more experienced than I.

I have a brand new 500 GB SSD as well as an existing 1 TB HHD. How would you advise me to partition my system? OpenSuse will be the only OS installed.
Also, is it a good idea to use an LVM setup? I have never used LVM before but from the little i know it looks like it is more flexible than traditional partitioning. Are there any downsides I should be aware of?

Thanks in advance for any advice you can provide.

You may have:

  • efi system partition: 100MB
  • 1 or 2 System Partitions: 30GB each, 50GB if btrfs.
  • swap: 16 GB
  • home partition, maximum available

If unsure about LVM don’t use it.

I would do:
~250MB EFI (Dedicated for OpenSUSE) on the SSD
~100GB / on the SSD (I use ext4 and do install a lot of packages)
~500GB /home on the HDD (I use ext4 or however large you wish to make)
Shared SWAP (? I typically have no swap partition)

I haven’t used LVM either.

Hi and welcome to the Forum :slight_smile:
Perhaps a few more details on your end use, for example do you plan to run any databases, virtual machines, web server etc? These may influence Forum users responses for disk use :wink:

If it is UEFI booting, then I would suggest 100-260MB for this partition on the SSD.

How about the rest of your hardware details, RAM, CPU, Graphics?

Looks like you plan to run Leap, plan to stick to the default repositories, or are you like some folks here who try to blend bleeding edge in Leap (and if not careful have issues)?

Because for most ordinary Users booting is the most noticeable time when you want high performance disk read I/O, you will want to put your root (/) files on your SSD. Typically, if you boot EFI for convenience you’ll want to put that partition on the same disk.

Regarding LVM,
If you install BTRFS (typically recommended and is default), you will automatically be set up with BTRFS volumes and subvolumes which is an alternative and not compatible with LVM (so no LVM).
If you decide to format with a different filesystem like EXT4, then you can choose the LVM option if you wish (no opinion one way or the other).

During the installation when you reach the following screen for your proposed layout, you should select “Guided Setup.” Unlike “Expert Partitioner” you will be presented with a layout that works, but can be modified. There may be new options to modify the location of your Home directory, otherwise when the Partitioner displays you can set there (but might require a bit of searching for someone who hasn’t used this tool before). Set your HOME directory to your HDD.

http://slides.com/tonysu/opensuse#/7

The above are the most common setup answers for what you’re likely looking for.

For those who instead have a tiny SSD (ie 16-128GB) in combination with an enormous HDD (multiple TB), you might consider looking into setting up the SSD as an Optane drive, which is to set up either the entire or part of the SSD as a dedicated I/O buffer for your HDD storage. For a short time, I experienced this and found it unbelievable, both reads and writes were comparable to SSD for everything stored on the HDD. I didn’t set up that system and didn’t keep it so am not familiar about its setup, but I would highly recommend it for the SSD/HDD configuration I described.

BTW - As someone new to installing openSUSE, you may want to skim the entire slidedeck from the link I provided above.

TSU

On SSD you’ll have everything that benefits from low latencies:

  • EFI system partition
  • 1 Btrfs partition (drive - EFI size - SWAP size) for system and data
  • SWAP (= 2GiB, or large enough to hold suspend-to-disk, if you want to use it)
  • There are recommendations for leaving 7%-10% unpartitioned (over-provisioning), your call. I don’t follow that, since my drive already has internal space to fulfill this need.

On HDD, a suggestion:

  • Any FS: 50% for large data that don’t need high throughput
  • Btrfs: 50% for read-only backups from system partition in SSD
  • Or simply a single Btrfs partition: some subvolumes are read-only copies from SSD, the other subvolumes can hold read/write data

For backups from SSD to HDD, use btrfs send/receive (native solution from btrfs and btrfs-progs). You’ll want to backup at least your data in /home. If SSD fails and you want to avoid a complete system reinstall, then you can backup / and /var subvolumes as well. Subvolumes are like partitions, except they draw empty blocks from the same unallocated pool.

I too am intending to upgrade my desktop to include an SSD and was looking for advice and found this thread which gives me most of what I need. I do have however one question and that is about the swap disk. I use hibernate a lot on my desktop and was wondering if this is still a good option in terms of start up times. Obviously I do this currently because I boot from an HDD. Is SSD booting that much faster that it is comparable with a resume from hibernate? I am assuming that if I do create a swap it should go on an HDD rather than the SSD, or does it not really matter?

The intended new system will be a Ryzen 5 3400G processor, new m/b and 16gb DDR4 ram and probably a 250GB SSD. I dont do gaming so for now the on chip graphics will be quite good enough.

Stuart

I haven’t used SWAP since 2013 when I started using SSDs. If you really need to/want to, I recommend putting the swap partition in your HDD.

I think the easiest solution for you is to either place a ~32GB SWAP partition either at the end of your / partition on the SSD, or just at the end of your /home partition in HDD during install, and when you decided you don’t need SWAP anymore, you can delete its entry from /etc/fstab and delete the SWAP partition using “Yast partitioner” and reclaim the space back by extending your / or /home partitions.

The only downside is that if you use all of your 16GB RAM, your system will freeze and crash.

A quite reasonable choice. For minimum hassle and maximum flexibility use 3200 MHz kits. You may consider a 500GB, 1 or 2 TB SSDs. I am using HDDs for backup only. I only use Suspend/Resume which is faster than waking up my monitor (upon resume I can hear a video playing before the monitor starts displaying):

  315.595524] erlangen systemd[1]: Starting Suspend...
  315.606263] erlangen systemd-sleep[3521]: INFO: Skip running /usr/lib/systemd/system-sleep/grub2.sleep for suspend
  315.607323] erlangen systemd-sleep[3519]: Suspending system...
  316.897245] erlangen systemd-sleep[3519]: System resumed.
  316.903796] erlangen systemd-sleep[3590]: INFO: Skip running /usr/lib/systemd/system-sleep/grub2.sleep for suspend
  316.904881] erlangen systemd[1]: systemd-suspend.service: Succeeded.
  316.905158] erlangen systemd[1]: Finished Suspend.

Power consumption during suspend is 2W, by far less than most routers consume.

On my current system I had setup the swap on HDD, because the NVMe is about the same size of the one you expect to use. It was awfully slow to resume from the HDD compared to booting from the NVMe, so I moved the swap to the NVMe, using an unallocated space I left at the end of it. Swap size is about 10GB, RAM is 16GB.

Thanks guys for the added advice. Certainly food for thought. I am intending to continue using my SATA HDDs for storage as I have many photos and videos on them, also will use HDD for home. Might think about swap on SSD.

Stuart

Hi
Or use some of your RAM? There is systemd-zram-service (in Leap/Tumbleweed) it’s old, but works fine and systemd-swap (https://build.opensuse.org/package/show/home:malcolmlewis:TESTING/systemd-swap), see https://forums.opensuse.org/showthread.php/540647-zswap-can-t-use-lz4-compression-algorithm-and-z3fold-pool-anymore

You may reconsider partitioning. With a small SSD you can have both system and /home in a single btrfs partition:

linux:~ # inxi -zFm
System:    Kernel: 5.8.7-1-default x86_64 bits: 64 Console: tty 1 Distro: openSUSE Tumbleweed 20200917 
Machine:   Type: Desktop Mobo: Gigabyte model: B450 AORUS ELITE v: x.x serial: N/A UEFI: American Megatrends v: F51 
           date: 12/18/2019 
Memory:    RAM: total: 29.32 GiB used: 1.38 GiB (4.7%) 
           Array-1: capacity: 128 GiB slots: 4 EC: None 
           Device-1: DIMM 0 size: No Module Installed 
           Device-2: DIMM 1 size: 16 GiB speed: 2133 MT/s 
           Device-3: DIMM 0 size: No Module Installed 
           Device-4: DIMM 1 size: 16 GiB speed: 2133 MT/s 
CPU:       Topology: Quad Core model: AMD Ryzen 5 3400G with Radeon Vega Graphics bits: 64 type: MT MCP L2 cache: 2048 KiB 
           Speed: 1259 MHz min/max: 1400/3700 MHz Core speeds (MHz): 1: 1258 2: 1260 3: 1291 4: 1263 5: 1360 6: 1283 7: 1282 
           8: 1306 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Picasso driver: amdgpu v: kernel 
           Display: server: X.Org 1.20.9 driver: amdgpu unloaded: fbdev,modesetting,vesa resolution: 1920x1200~60Hz 
           OpenGL: renderer: AMD RAVEN (DRM 3.38.0 5.8.7-1-default LLVM 10.0.1) v: 4.6 Mesa 20.1.7 
Audio:     Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio driver: snd_hda_intel 
           Device-2: Advanced Micro Devices [AMD] Family 17h HD Audio driver: snd_hda_intel 
           Sound Server: ALSA v: k5.8.7-1-default 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 232.89 GiB used: 21.06 GiB (9.0%) 
           ID-1: /dev/sda vendor: Crucial model: CT250MX500SSD1 size: 232.89 GiB 
Partition: ID-1: / size: 130.00 GiB used: 21.03 GiB (16.2%) fs: btrfs dev: /dev/sda2 
           ID-2: /home size: 130.00 GiB used: 21.03 GiB (16.2%) fs: btrfs dev: /dev/sda2 
           ID-3: /opt size: 130.00 GiB used: 21.03 GiB (16.2%) fs: btrfs dev: /dev/sda2 
           ID-4: /tmp size: 130.00 GiB used: 21.03 GiB (16.2%) fs: btrfs dev: /dev/sda2 
           ID-5: /var size: 130.00 GiB used: 21.03 GiB (16.2%) fs: btrfs dev: /dev/sda2 
Swap:      ID-1: swap-1 type: partition size: 2.00 GiB used: 0 KiB (0.0%) dev: /dev/sda5 
Sensors:   System Temperatures: cpu: 37.5 C mobo: 27.0 C gpu: amdgpu temp: 37 C 
           Fan Speeds (RPM): cpu: 0 fan-1: 0 fan-3: 0 
Info:      Processes: 243 Uptime: N/A Shell: bash inxi: 3.1.00 
linux:~ # 

Swap is optional and you can add it a later time when needed by shrinking the btrfs partition. You can mount your images and videos on demand and automatically unmount them if idle. I had it this way for several years until I decided to move them to SSD.