Install Directadmin on none-bootable NVMe

Tpark

Verified User
Joined
Nov 2, 2018
Messages
35
Hi
I have some Enterprise HHHL(form factor) NVMe's and i want to setup Cloudlinux8+Litespeed+directadmin on it.
because of the architecture of this drives, they can not be used for essential partitions like: '/' and '/boot'.
(1- they didn't detect by os and drivers need to be installed.
2- dracut loads their driver modules after mounting essential partitions, so system won't boot up
3- also with each kernel update, nvme driver needs to be install & load to new kernel.)

So:
If i use a usaual sata ssd (samsung evo/pro) for essential partitions and directories (/boot - /var - /etc ...) and mount '/home' and '/usr/local' on NVMe.
Will I achieve maximum Possible performance of Directadmin, webserver and database?
 
No, not just because mysql is located in /var/lib/mysql/ but performance depends greatly on the configuration of your system, memory, cpu, caches, buffers, type of workload and a lot more. Not just a fast disk. And any bad query or script can cripple the fastest systems.
 
No, not just because mysql is located in /var/lib/mysql/ but performance depends greatly on the configuration of your system, memory, cpu, caches, buffers, type of workload and a lot more. Not just a fast disk. And any bad query or script can cripple the fastest systems.
Thank you @sysdev
Actually the server is a powerhouse and cloudlinux will control users resource usage.
Just moved /var/lib into new partition on NVMe. no boot error and system is working.

final directories on NVMe:
/home
/usr/local
/var/lib

I think /var/lib doing a +1 to overall performance.
any other suggestion?
 
I had the same problem with my 13th generation Dell servers, they wouldn't boot from the NVME's, so I put 2 SD cards in the redundant SD module (Optional, configured as Raid 1) and put the boot partition and the UEFI stuff on them and the servers booted as they should.

BTW: Don't use cheap SD cards!

See here:
nvme.png
 
Last edited:
I had the same problem with my 13th generation Dell servers, they wouldn't boot from the NVME's, so I put 2 SD cards in the redundant SD module (Optional, configured as Raid 1) and put the boot partition and the UEFI stuff on them and the servers booted as they should.

BTW: Don't use cheap SD cards!

See here:
Thank you @apogee
first of all, my NVMe didn't detected while installing OS.
When I use "Driver Disk" and install boot on USB and OS on NVMe , system won't boot and I've explained why in Post #1.
-
I have no choice, I must install "/boot" & "/" on ssd and I can mount some directories on my NVMe.
So I'm asking in this situation which directories should I mount on NVMe?
 
I would place all on the NVME's, expect the boot stuff, see here:

[root@c8-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 7.3T 0 disk
sdb 8:16 0 7.3T 0 disk
sdc 8:32 0 14.9G 0 disk
├─sdc1 8:33 0 600M 0 part /boot/efi
└─sdc2 8:34 0 1G 0 part /boot
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 1.9T 0 disk
├─nvme0n1p1 259:1 0 31.5G 0 part [SWAP]
└─nvme0n1p2 259:2 0 1.9T 0 part /


Use a vanilla kernel and build in the drivers for your board & controllers in. I can send u a Dell image, (works on Gen 12,13 & 14, for me).
 
I'm moving to NVME /home and /var/lib/mysql
I don't move whole /var because:
1. it makes additional I/O load with logs, named etc.
2. we can replace mysql disk on working system just by stopping mysqld service and rsync data to new disk, with no impact to another services.
3. i can mount it as noatime,noexec,nosuid,nodev etc. and fully owned by mysql:mysql
---
last setupped server:
2x240G ssd /boot and /
2x3.84 ssd /home
2x480 nvme /var/lib/mysql
---
also my recommendation if you are using mirroring at large disks, and have enough drive bays - better to use 2x smaller disks but combined in raid10. It will cost +10% but additional I/O speed will be as bonus, also RAID rebuild will be faster and total speed will increase almost twice! But NVME must be at least 480g (better 960) and sata ssd must be at least 960 - from this drive sizes i/o speed and drive cache are maximum. Also all ssd/nvme likes when they have at least 30% free space.
 
I'm moving to NVME /home and /var/lib/mysql
I don't move whole /var because:
1. it makes additional I/O load with logs, named etc.
2. we can replace mysql disk on working system just by stopping mysqld service and rsync data to new disk, with no impact to another services.
3. i can mount it as noatime,noexec,nosuid,nodev etc. and fully owned by mysql:mysql
---
last setupped server:
2x240G ssd /boot and /
2x3.84 ssd /home
2x480 nvme /var/lib/mysql
---
also my recommendation if you are using mirroring at large disks, and have enough drive bays - better to use 2x smaller disks but combined in raid10. It will cost +10% but additional I/O speed will be as bonus, also RAID rebuild will be faster and total speed will increase almost twice! But NVME must be at least 480g (better 960) and sata ssd must be at least 960 - from this drive sizes i/o speed and drive cache are maximum. Also all ssd/nvme likes when they have at least 30% free space.
So you are telling me that mounting:
1- /var/lib
2- /usr/local
3- /home
on NVMe is enough for having Top-Level performance with NVMe drives.

I'm going to try this partitioning architecture.
Thank you All guys
 
Last edited:
because of the architecture of this drives, they can not be used for essential partitions like: '/' and '/boot'.
If you can't really make them work that way, why not just use SSD for /boot and some kind of backup or other purpose drive (for example, email, if that's a large SSD)?
 
If you can't really make them work that way, why not just use SSD for /boot and some kind of backup or other purpose drive (for example, email, if that's a large SSD)?
Actually I'm using this drives and usage of server will be hosting server.

When I mount any of essential partition/directory like "/" ,"/etc" or "/var" on this drive, most of services fail to start at Dracut, because Dracut load NVMe driver module after mounting partitions.

I've mounted: 100GB for "/var/lib -> MySQL" , 100GB for "/usr/local for apps and services" and rest of drive for "/home -> for user files" on NVMe and "/" ,"/boot" and "swap" on "Samsung 870 Evo 240GB".
This strategy works fine.

I'm wondering if it's a correct solution?
and
will mounting any other directories on NVMe, improve server's overall performance?

Thank you
 
@Tpark
Becarefully, Database And User Files,

If you have 10 user; and have package disk limit 20GB per User
If 10 user usage mysql 10gb per User, It make /var/lib Full

Between "/home" and "/var/lib"
I think you should make (same/more) than "/home" for safely
 
@Tpark
Becarefully, Database And User Files,

If you have 10 user; and have package disk limit 20GB per User
If 10 user usage mysql 10gb per User, It make /var/lib Full

Between "/home" and "/var/lib"
I think you should make (same/more) than "/home" for safely
Thank you @jamgames2.
It is a good point and finesse I'm looking for.

This server will use for 'WordPress Hosting' and I've checked my another 'WordPress Hosting' servers with +250/350 Users.
/var/lib use about 40GB~70GB because average DB Size for a usual WordPress site is 30MB~70MB.
but I'm going to Double the Size of MySQL Partition.
 
Back
Top