Partitionnement personnalisé et RAID (CPR)
Equinix Metal™ propose une fonction de partitionnement et de RAID personnalisés (CPR), qui vous permet de spécifier la configuration du disque lorsque vous déployez un serveur réservé.
Pour utiliser CPR, créez un objet JSON qui :
- Indique les disques à formater.
- Comment vous souhaitez que ces disques soient formatés.
- Quel système de fichiers doit être créé sur les disques.
- Où monter la partition une fois qu'elle a été créée.
Utilisez les exemples pour commencer à créer le vôtre.
Exigences en matière de serveur réservé
Un serveur réservé est nécessaire car le schéma de disque exact doit être connu à l'avance afin de permettre à la personnalisation de fonctionner via l'API. La fonction de partitionnement personnalisé et de RAID n'est pas disponible pour les instances à la demande.
Approvisionnement avec CPR
Pour utiliser CPR, vous devrez déployer un serveur à partir de vos réservations de matériel via l'API. Lorsque vous envoyez votre requête POST au point de terminaison projects/<id>/devices, vous devrez envoyer votre configuration CPR sous forme d'objet JSON avec le paramètre storage dans le corps de la requête.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"hardware_reservation_id":"<reservation_id>",
"hostname": "<your-hostname>",
"plan": "<plan_slug>",
"operating_system": "<os_slug>",
"storage": "<CPR_JSON_definition>",
}'
Exemples généraux
RAID 1 boot, RAID 1 DATA
- 2 disques en RAID1 pour la partition
root. - 2 disques en RAID1 pour la partition
data.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdc",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdd",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": 1,
"name": "/dev/md/root"
},
{
"devices": [
"/dev/sdc1",
"/dev/sdd1"
],
"level": 1,
"name": "/dev/md/data"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/root",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/data",
"format": "ext4",
"point": "/data",
"create": {
"options": [
"-L",
"DATA"
]
}
}
}
]
}
RAID1 boot, RAID0 DATA
- 2 disques en RAID1 pour la partition
root. - 2 disques en RAID0 pour la partition
data.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdc",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdd",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": 1,
"name": "/dev/md/root"
},
{
"devices": [
"/dev/sdc1",
"/dev/sdd1"
],
"level": 0,
"name": "/dev/md/data"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/root",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/data",
"format": "ext4",
"point": "/data",
"create": {
"options": [
"-L",
"DATA"
]
}
}
}
]
}
RAID1 boot Uniquement
- 2 disques en RAID1 pour la partition
rootuniquement.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": 1,
"name": "/dev/md/root"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/root",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
}
]
}
Exemples par serveur
c3.small.x86
Le c3.small.x86 est livré avec 2 disques de 480 Go. Cet exemple prend l'un de ces disques, crée trois partitions (BIOS, swap et racine), puis formate la partition swap en tant que swap et la partition racine en tant que ext4.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "3993600"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda3",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/sda2",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
c3.medium.x86
- 2 disques en RAID1 pour la partition
root. - 2 disques en RAID1 pour la partition
data. - 2 disques en RAID0 pour la partition
swap.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "8G"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "8G"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
},
{
"device": "/dev/sdc",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdd",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda3",
"/dev/sdb3"
],
"level": 1,
"name": "/dev/md/root"
},
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": 0,
"name": "/dev/md/swap"
},
{
"devices": [
"/dev/sdc1",
"/dev/sdd1"
],
"level": 1,
"name": "/dev/md/data"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/root",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/data",
"format": "ext4",
"point": "/data",
"create": {
"options": [
"-L",
"DATA"
]
}
}
},
{
"mount": {
"device": "/dev/md/swap",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
c3.medium.x86 (pas de swap)
- 2 disques en RAID1 pour la partition
root. - 2 disques en RAID1 pour la partition
data.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "ROOT",
"number": 2,
"size": 0
}
]
},
{
"device": "/dev/sdc",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdd",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": 1,
"name": "/dev/md/root"
},
{
"devices": [
"/dev/sdc1",
"/dev/sdd1"
],
"level": 1,
"name": "/dev/md/data"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/root",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/data",
"format": "ext4",
"point": "/data",
"create": {
"options": [
"-L",
"DATA"
]
}
}
}
]
}
s3.xlarge.x86
Le s3.xlarge dispose de 2 x 960 Go SSD, 12 x 8 TB HDD, et 2 x 256 Go de NVMe Flash. Dans cet exemple, les 2 x 960 Go SSD seront utilisés par ROOT et SWAP en RAID 1, 12 x 8 TB seront utilisés par DATA en RAID 10. Les disques NVMe sont laissés à d'autres fins.
{
"disks": [
{
"device": "/dev/sdn",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "8G"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
},
{
"device": "/dev/sdm",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "8G"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
},
{
"device": "/dev/sdj",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdc",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdi",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdk",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdf",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdd",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdg",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sde",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdl",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
},
{
"device": "/dev/sdh",
"wipeTable": true,
"partitions": [
{
"label": "DATA",
"number": 1,
"size": 0
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda1",
"/dev/sdb1",
"/dev/sdc1",
"/dev/sdd1",
"/dev/sde1",
"/dev/sdf1",
"/dev/sdg1",
"/dev/sdh1",
"/dev/sdi1",
"/dev/sdj1",
"/dev/sdk1",
"/dev/sdl1"
],
"level": "10",
"name": "/dev/md/DATA"
},
{
"devices": [
"/dev/sdm2",
"/dev/sdn2"
],
"level": "1",
"name": "/dev/md/SWAP"
},
{
"devices": [
"/dev/sdm3",
"/dev/sdn3"
],
"level": "1",
"name": "/dev/md/ROOT"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/md/ROOT",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/DATA",
"format": "ext4",
"point": "/DATA",
"create": {
"options": [
"-L",
"DATA"
]
}
}
},
{
"mount": {
"device": "/dev/md/SWAP",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
EFI-Enabled m3.small.x86
- Compatible avec l'EFI
- 2 disques en RAID1 pour la partition
swap. - 2 disques en RAID1 pour la partition
root.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": "512M"
},
{
"label": "SWAP",
"number": 2,
"size": "4G"
},
{
"label": "ROOT",
"number": 3,
"size": "0"
}
]
},
{
"device": "/dev/sdb",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": "512M"
},
{
"label": "SWAP",
"number": 2,
"size": "4G"
},
{
"label": "ROOT",
"number": 3,
"size": "0"
}
]
}
],
"raid": [
{
"devices": [
"/dev/sda2",
"/dev/sdb2"
],
"level": "1",
"name": "/dev/md/SWAP"
},
{
"devices": [
"/dev/sda3",
"/dev/sdb3"
],
"level": "1",
"name": "/dev/md/ROOT"
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda1",
"format": "vfat",
"create": {
"options": [
"32",
"-n",
"EFI"
]
},
"point": "/boot/efi"
}
},
{
"mount": {
"device": "/dev/md/ROOT",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/md/SWAP",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
Exemple pour les serveurs UEFI uniquement
Nous avons quelques serveurs hérités, le c2.large.arm et le c2.medium.x86, qui sont uniquement UEFI. Vous devez utiliser une partition EFI FAT32 pour /boot/efi. Voici un exemple de configuration pour le c2.medium.x86, qui a 2 x 120 GB SSD et 2 x 480 GB SSD.
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": "512M"
},
{
"label": "SWAP",
"number": 2,
"size": "3993600"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda1",
"format": "vfat",
"point": "/boot/efi",
"create": {
"options": [
"32",
"-n",
"EFI"
]
}
}
},
{
"mount": {
"device": "/dev/sda3",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/sda2",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}