Fusion-io/Linux

From Omnia
Jump to navigation Jump to search

ReadMe

RemixVSL v3:

https://github.com/RemixVSL/iomemory-vsl

RemixVSL v4:

https://github.com/RemixVSL/iomemory-vsl4

Readme:

https://github.com/RemixVSL/iomemory-vsl/blob/main/README.md

Ubuntu

Debian/Ubuntu Dependencies:

sudo apt-get install gcc fakeroot build-essential debhelper rsync linux-headers-$(uname --r)

Download Source:

sudo apt-get install git
git clone https://github.com/RemixVSL/iomemory-vsl
cd iomemory-vsl/

Manually (good for testing only):

make module
sudo insmod root/usr/src/iomemory-vsl-3.2.16/iomemory-vsl.ko

Debian: (.deb Ubuntu / Debian)

make dpkg
dpkg -i ../iomemory-vsl-6.5.11-4-pve_3.2.16.1732_amd64.deb

DKMS (recommended):

sudo apt-get install dkms
sudo make dkms

Load driver:

modprobe iomemory-vsl

Install tools:

git clone https://github.com/RemixVSL/vsl_downloads.git
dpkg -i vsl_downloads/vsl3/fio-util_3.2.16.1731-1.0_amd64.deb

Download Firmware:

cd vsl_downloads
./mk_vsl3_firmware.sh

Proxmox

Proxmox Pre-Dependencies:

# apt install sudo git

Proxmox 8 Dependencies:

sudo apt-get install sudo git gcc fakeroot build-essential debhelper rsync pve-headers proxmox-headers-`uname -r`

Download Source:

sudo apt-get install git
git clone https://github.com/RemixVSL/iomemory-vsl
cd iomemory-vsl/

Manually (good for testing only):

make module
sudo insmod root/usr/src/iomemory-vsl-3.2.16/iomemory-vsl.ko

Debian: (.deb Ubuntu / Debian)

make dpkg
dpkg -i ../iomemory-vsl-6.5.11-4-pve_3.2.16.1732_amd64.deb

DKMS (recommended):

sudo apt-get install dkms
sudo make dkms

Load driver:

modprobe iomemory-vsl
fio-detach /dev/fct0
# fio-format /dev/fct0
fio-format /dev/fct0 -s 4K  # format 4k
fio-attach /dev/fct0

Install tools:

git clone https://github.com/RemixVSL/vsl_downloads.git
dpkg -i vsl_downloads/vsl3/fio-util_3.2.16.1731-1.0_amd64.deb

Create Ceph Bluestore: [1]

ceph-volume lvm create --bluestore --data /dev/fioa

Note: will get an error 'unable to find keyring'. See Proxmox/Fix Keyring to fix first.

If you need to rebuild the bluestore, you will need to first destroy it:

ceph-volume lvm zap /dev/fioa --destroy

Also create this udev rule to auto mount your LVM after reboots, or your OSDs won't be happy after reboots.

/etc/udev/rules.d/60-persistent-storage-fio.rules
cat > /etc/udev/rules.d/60-persistent-storage-fio.rules << "EOF"
# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path}
# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>

ACTION=="remove", GOTO="persistent_storage_end"
ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end"

SUBSYSTEM!="block", GOTO="persistent_storage_end"
KERNEL!="fio*", GOTO="persistent_storage_end"

# ignore partitions that span the entire disk
TEST=="whole_disk", GOTO="persistent_storage_end"

# For partitions import parent disk ID_* information, except ID_FS_*.
#
# This is particularly important on media where a filesystem superblock and
# partition table are found on the same level, e.g. common Linux distro ISO
# installation media.
#
# In the case where a partition device points to the same filesystem that
# was detected on the parent disk, the ID_FS_* information is already
# present on the partition devices as well as the parent, so no need to
# propagate it. In the case where the partition device points to a different
# filesystem, merging the parent ID_FS_ properties would lead to
# inconsistencies, so we avoid doing so.
ENV{DEVTYPE}=="partition", \
  IMPORT{parent}="ID_[!F]*", IMPORT{parent}="ID_", \
  IMPORT{parent}="ID_F[!S]*", IMPORT{parent}="ID_F", \
  IMPORT{parent}="ID_FS[!_]*", IMPORT{parent}="ID_FS"

# probe filesystem metadata of disks
IMPORT{builtin}="blkid"

# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"

# by-partlabel/by-partuuid links (partition metadata)
ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}"

LABEL="persistent_storage_end"
EOF
The content is gone after the reboot · Issue #55 · RemixVSL/iomemory-vsl · GitHub
https://github.com/RemixVSL/iomemory-vsl/issues/55

Fusion-io and OEM Part Numbers Matrix

https://docs.google.com/spreadsheets/d/e/2PACX-1vQMd40liekOCeftUYQx6GeofHgjU5SSDT-jHWid03JCfswQxHAhVee3rW-04baqKg1qN2fp7wEzuFm6/pubhtml

Generally:

  • gen1 (iodrive 1) drive will need vsl version 2 - not available anymore
  • gen2 (iodrive 2) drive will need vsl version 3
  • gen3 (iodrive 3) drive will need vsl version 4

Download driver: http://support.fusionio.com

Manual: http://manuals.ts.fujitsu.com/file/11734/iodrive-ug-linux.pdf

lspci

gen 1

# lspci -n | grep aed
02:00.0 0180: 1aed:1005 (rev 01)

gen 2

# lspci -n | grep aed
07:00.0 0180: 1aed:2001 (rev 04)
08:00.0 0180: 1aed:2001 (rev 04)

gen 3

# lspci -n | grep aed
02:00.0 0180: 1aed:3002