Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
228 lines
4.1 KiB
Markdown
228 lines
4.1 KiB
Markdown
# Fresh Ceph Setup on Proxmox VE
|
|
|
|
## Prerequisites
|
|
|
|
- Proxmox VE installed on both nodes
|
|
- Nodes are in a Proxmox cluster (or standalone)
|
|
- Network connectivity between nodes (192.168.11.0/24)
|
|
- Root access to both nodes
|
|
|
|
## Node Information
|
|
|
|
- **ML110-01**: ml110-01.sankofa.nexus (192.168.11.10)
|
|
- **R630-01**: r630-01.sankofa.nexus (192.168.11.11)
|
|
|
|
## Step-by-Step Setup
|
|
|
|
### Step 1: Install Ceph on Both Nodes
|
|
|
|
Run on **both nodes**:
|
|
|
|
```bash
|
|
apt-get update
|
|
apt-get install -y ceph ceph-common ceph-base
|
|
```
|
|
|
|
### Step 2: Initialize Ceph Cluster (ML110-01 only)
|
|
|
|
Run on **ml110-01**:
|
|
|
|
```bash
|
|
pveceph init --network 192.168.11.0/24 --cluster-network 192.168.11.0/24
|
|
```
|
|
|
|
This will:
|
|
- Create `/etc/pve/ceph.conf`
|
|
- Generate cluster FSID
|
|
- Set up bootstrap keyrings
|
|
|
|
### Step 3: Create Monitors
|
|
|
|
Run on **ml110-01**:
|
|
|
|
```bash
|
|
pveceph mon create
|
|
```
|
|
|
|
Run on **r630-01**:
|
|
|
|
```bash
|
|
pveceph mon create
|
|
```
|
|
|
|
### Step 4: Verify Quorum
|
|
|
|
Run on **either node**:
|
|
|
|
```bash
|
|
ceph quorum_status
|
|
ceph -s
|
|
```
|
|
|
|
You should see both monitors in quorum.
|
|
|
|
### Step 5: Create OSDs
|
|
|
|
#### On ML110-01
|
|
|
|
Identify available drives:
|
|
|
|
```bash
|
|
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE
|
|
```
|
|
|
|
Create OSD on available drive (replace `/dev/sdX` with actual drive):
|
|
|
|
```bash
|
|
ceph-volume lvm create --data /dev/sdX
|
|
```
|
|
|
|
#### On R630-01
|
|
|
|
Create OSDs on the 6x 250GB drives (sdc, sdd, sde, sdf, sdg, sdh):
|
|
|
|
```bash
|
|
for disk in sdc sdd sde sdf sdg sdh; do
|
|
echo "Creating OSD on /dev/$disk..."
|
|
ceph-volume lvm create --data /dev/$disk
|
|
sleep 2
|
|
done
|
|
```
|
|
|
|
### Step 6: Verify Cluster Health
|
|
|
|
Run on **either node**:
|
|
|
|
```bash
|
|
ceph -s
|
|
ceph osd tree
|
|
ceph health detail
|
|
```
|
|
|
|
### Step 7: Create Storage Pools
|
|
|
|
#### Create RBD Pool (for VM disks)
|
|
|
|
```bash
|
|
ceph osd pool create rbd 32 32
|
|
ceph osd pool application enable rbd rbd
|
|
rbd pool init rbd
|
|
```
|
|
|
|
#### Create CephFS (for shared storage)
|
|
|
|
```bash
|
|
ceph osd pool create cephfs_data 32 32
|
|
ceph osd pool create cephfs_metadata 16 16
|
|
ceph fs new ceph-fs cephfs_metadata cephfs_data
|
|
```
|
|
|
|
### Step 8: Add Storage to Proxmox
|
|
|
|
#### Add Ceph RBD Storage
|
|
|
|
In Proxmox Web UI:
|
|
1. Datacenter → Storage → Add → RBD
|
|
2. ID: `ceph-rbd`
|
|
3. Pool: `rbd`
|
|
4. Nodes: Select both nodes
|
|
5. Add
|
|
|
|
#### Add CephFS Storage
|
|
|
|
In Proxmox Web UI:
|
|
1. Datacenter → Storage → Add → CephFS
|
|
2. ID: `ceph-fs`
|
|
3. FS Name: `ceph-fs`
|
|
4. Nodes: Select both nodes
|
|
5. Add
|
|
|
|
## Verification Checklist
|
|
|
|
- [ ] Both monitors in quorum
|
|
- [ ] At least 3 OSDs created (for replication factor 3)
|
|
- [ ] Cluster health is HEALTH_OK or HEALTH_WARN (not HEALTH_ERR)
|
|
- [ ] Storage pools created (rbd, cephfs_data, cephfs_metadata)
|
|
- [ ] CephFS filesystem created
|
|
- [ ] Storage added to Proxmox Web UI
|
|
|
|
## Troubleshooting
|
|
|
|
### Monitors Not Forming Quorum
|
|
|
|
1. Check monitor services:
|
|
```bash
|
|
systemctl status ceph-mon@$(hostname -s)
|
|
```
|
|
|
|
2. Check monitor logs:
|
|
```bash
|
|
journalctl -u ceph-mon@$(hostname -s) -n 50
|
|
```
|
|
|
|
3. Verify network connectivity:
|
|
```bash
|
|
ping 192.168.11.10
|
|
ping 192.168.11.11
|
|
```
|
|
|
|
4. Check firewall:
|
|
```bash
|
|
# Allow Ceph ports
|
|
ufw allow 6789/tcp # Classic msgr
|
|
ufw allow 3300/tcp # msgr2
|
|
```
|
|
|
|
### OSD Creation Fails
|
|
|
|
1. Check if drive is available:
|
|
```bash
|
|
lsblk /dev/sdX
|
|
```
|
|
|
|
2. Wipe drive if needed:
|
|
```bash
|
|
wipefs -a /dev/sdX
|
|
```
|
|
|
|
3. Check for existing LVM volumes:
|
|
```bash
|
|
pvs | grep sdX
|
|
vgs | grep ceph
|
|
```
|
|
|
|
### Cluster Health Issues
|
|
|
|
1. Check detailed health:
|
|
```bash
|
|
ceph health detail
|
|
```
|
|
|
|
2. Check OSD status:
|
|
```bash
|
|
ceph osd tree
|
|
ceph osd stat
|
|
```
|
|
|
|
3. Check placement groups:
|
|
```bash
|
|
ceph pg stat
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
After Ceph is set up:
|
|
|
|
1. **Fix PG allocation**: Ensure pools have appropriate PG counts
|
|
2. **Create VMs**: Use Ceph storage for VM disks
|
|
3. **Monitor cluster**: Set up monitoring and alerts
|
|
4. **Backup configuration**: Backup `/etc/pve/ceph.conf` and keyrings
|
|
|
|
## Important Notes
|
|
|
|
- **Minimum OSDs**: For `osd_pool_default_size = 3`, you need at least 3 OSDs
|
|
- **PG Count**: Use calculator: https://ceph.io/pgcalc/
|
|
- **Network**: Ensure cluster network has sufficient bandwidth
|
|
- **Backup**: Always backup Ceph configuration and keyrings
|
|
|