Advertisement
echoslider

single_node_ceph_VM_on_kvm_with_zfs_and_iscsi

Oct 13th, 2023 (edited)
1,141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.87 KB | None | 0 0
  1. apt install zfsutils-linux
  2.  
  3. ls -lart /dev/disk/by-path
  4.  
  5. zpool create \
  6.     -o ashift=12 \
  7.     -O acltype=posixacl -O canmount=off -O compression=lz4 \
  8.     -O xattr=sa -f storage mirror \
  9.      /dev/disk/by-path/virtio-pci-0000:06:00.0 \
  10.     /dev/disk/by-path/virtio-pci-0000:07:00.0
  11.    
  12. zfs create storage/kvm
  13. zfs set mountpoint=/var/lib/libvirt storage/kvm
  14. mount -a
  15.  
  16. apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils tgt
  17.  
  18. adduser serveradmin libvirt
  19. adduser serveradmin kvm
  20.  
  21. zfs create storage/files
  22. zfs set mountpoint=/files storage/files
  23.  
  24. cat >> /etc/tgt/conf.d/disk1.conf << EOF
  25. <target storage1:disk1>
  26. backing-store /dev/disk/by-path/virtio-pci-0000:08:00.0
  27. </target>
  28. EOF
  29.  
  30.  
  31. cat >> /etc/tgt/conf.d/disk2.conf << EOF
  32. <target storage1:disk2>
  33. backing-store /dev/disk/by-path/virtio-pci-0000:09:00.0
  34. </target>
  35. EOF
  36.  
  37.  
  38. cat >> /etc/tgt/conf.d/disk3.conf << EOF
  39. <target storage1:disk3>
  40. backing-store /dev/disk/by-path/virtio-pci-0000:0a:00.0
  41. </target>
  42. EOF
  43.  
  44. systemctl reload tgt
  45.  
  46.  
  47. cd /files
  48. wget -c https://releases.ubuntu.com/22.04.3/ubuntu-22.04.3-live-server-amd64.iso
  49.  
  50.  
  51. cat > 01-netcfg.yaml << EOF
  52. network:
  53.   version: 2
  54.   renderer: NetworkManager
  55.   ethernets:
  56.     enp1s0:  # The physical interface you want to bridge
  57.       dhcp4: no
  58.   bridges:
  59.     br0:
  60.       interfaces: [enp1s0]
  61.       dhcp4: true
  62. EOF
  63.  
  64. chmod 600 /etc/netplan/01-netcfg.yaml
  65.  
  66. netplan generate
  67. netplan apply
  68.  
  69. #####VM SETUP#####
  70.  
  71. #CREATE new VM
  72. #network choose the bridge
  73. #disk set to virtio
  74.  
  75. #ssh to VM1
  76.  
  77. #/etc/iscsi/iscsid.conf
  78. #node.startup = automatic
  79.  
  80.  
  81.  
  82. iscsiadm -m discovery -t sendtargets -p IP:3260
  83. iscsiadm -m node -T storage1:disk1 -p 10.0.3.209:3260 --login
  84. iscsiadm -m node -T storage1:disk2 -p 10.0.3.209:3260 --login
  85. iscsiadm -m node -T storage1:disk3 -p 10.0.3.209:3260 --login
  86.  
  87. iscsiadm --mode node --target storage1:disk1 --portal 10.0.3.209:3260 -o new
  88. iscsiadm --mode node --target storage1:disk2 --portal 10.0.3.209:3260 -o new
  89. iscsiadm --mode node --target storage1:disk3 --portal 10.0.3.209:3260 -o new
  90.  
  91. iscsiadm --mode node --target storage1:disk1  --portal 10.0.3.209:3260 -n discovery.sendtargets.use_discoveryd -v Yes
  92. iscsiadm --mode node --target storage1:disk2  --portal 10.0.3.209:3260 -n discovery.sendtargets.use_discoveryd -v Yes
  93. iscsiadm --mode node --target storage1:disk3  --portal 10.0.3.209:3260 -n discovery.sendtargets.use_discoveryd -v Yes
  94.  
  95. iscsiadm --mode node --target storage1:disk1 --portal 10.0.3.209:3260 -n discovery.sendtargets.discoveryd_poll_inval -v 30  
  96. iscsiadm --mode node --target storage1:disk2 --portal 10.0.3.209:3260 -n discovery.sendtargets.discoveryd_poll_inval -v 30  
  97. iscsiadm --mode node --target storage1:disk3 --portal 10.0.3.209:3260 -n discovery.sendtargets.discoveryd_poll_inval -v 30  
  98.  
  99.  
  100.  
  101. ls -lart /dev/disk/by-path
  102.  
  103. apt-get -y install podman cephadm ceph-common ceph-base lvm2 \
  104.     ceph-iscsi radosgw nfs-ganesha-ceph cephfs-shell \
  105.     targetcli-fb ceph-iscsi python3-rtslib-fb tcmu-runner lsof
  106.  
  107.  
  108. host=`hostname -s` \
  109. ip4=`ip -o -4 addr list $(ip r|grep "default"|awk '{print $5}') | awk '{print $4}' | cut -d/ -f1`
  110.  
  111. cephadm bootstrap \
  112. --mon-ip $ip4 \
  113. --dashboard-password-noupdate \
  114. --initial-dashboard-user admin \
  115. --initial-dashboard-password "p@ssw0rd"
  116.  
  117. ceph config set mgr mgr/cephadm/manage_etc_ceph_ceph_conf true
  118.  
  119. ceph telemetry on --license sharing-1-0
  120. ceph telemetry enable channel perf
  121. ceph mgr module enable prometheus
  122.  
  123.  
  124. ######important settings for single servers######
  125. ceph osd getcrushmap -o crushmap.cm
  126. crushtool --decompile crushmap.cm -o crushmap.txt
  127. sed -i s/"step chooseleaf firstn 0 type host"/"step chooseleaf firstn 0 type osd"/g crushmap.txt
  128. crushtool --compile crushmap.txt -o new_crushmap.cm
  129. ceph osd setcrushmap -i new_crushmap.cm
  130.  
  131. ceph tell mon.* injectargs '--mon-allow-pool-delete true'
  132.  
  133. ceph orch apply osd --all-available-devices
  134.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement