systemctl stop ceph-osd@3 umount /var/lib/ceph/osd/ceph-3/ ceph-volume lvm zap /dev/sdb ceph osd destroy osd.3 --yes-i-really-mean-it ceph-volume lvm create --bluestore --data /dev/sdb --osd-id 3
Docker Image Repo: Probably deploy one of these because the images are fairly large.
Deploying OpenStack via Ansible is the new preferred method. I’ve began learning this process and will document as I go to create your own.
yum install epel-release -y yum install ansible python-pip python-virtualenv python-devel libffi-devel gcc openssl-devel libselinux-python -y
curl -sSL https://get.docker.io | bash
mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
systemctl restart docker
systemctl enable docker virtualenv --system-site-packages /opt/openstack/ source /opt/openstack/bin/activate
pip install -U pip
pip install kolla-ansible decorators python-openstackclient cp -r /opt/openstack/share/kolla-ansible/etc_examples/kolla /etc/ cp -r /opt/openstack/share/kolla-ansible/ansible/inventory/* ~ echo "ansible_python_interpreter: /opt/openstack/bin/python" >> /etc/kolla/globals.yml kolla-genpwd
As of now kolla only supports config overrides for ini based configs. An operator can change the location where custom config files are read from by editing /etc/kolla/globals.ymland adding the following line.
# The directory to merge custom config files the kolla's config files node_custom_config: "/etc/kolla/config"
Kolla allows the operator to override configuration of services. Kolla will look for a file in /etc/kolla/config/<< service name >>/<< config file >>. This can be done per-project, per-service or per-service-on-specified-host. For example to override scheduler_max_attempts in nova scheduler, the operator needs to create /etc/kolla/config/nova/nova-scheduler.conf with content:
Ironic Kolla Configs:
Ironic needs an initramfs and kernel to boot the install image. Need to build some images with openstack Image Builder. Below is just the centos installer images.. these are not what you need. 🙂
mkdir /etc/kolla/config/ironic/ -p wget http://mirror.beyondhosting.net/centos/7.5.1804/os/x86_64/isolinux/initrd.img -O /etc/kolla/config/ironic/ironic-agent.initramfs wget http://mirror.beyondhosting.net/centos/7.5.1804/os/x86_64/isolinux/vmlinuz -O /etc/kolla/config/ironic/ironic-agent.kernel
Openstack Client Configuration:
Grab your keystone admin password from /etc/kolla/passwords.yml
kolla-ansible -i vbstack post-deploy
cat /etc/kolla/passwords.yml | grep keystone_admin_password
The following lines can be omitted
Run ansible to configure your servers. This assumes you already created your ansible host env layout.
Add this line to sshd or replace it, and remove ciphers of less than 2000 from the moduli
echo 'KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-
nistp384,ecdh-sha2-nistp521, diffie-hellman-group14-sha1, diffie-hellman-group-exchange- sha1,diffie-hellman-group- exchange-sha256' > /etc/ssh/sshd_config
awk '$5 > 2000' /etc/ssh/moduli > /tmp/moduli; cp /tmp/moduli /etc/ssh/moduli
I am by no means a professional at automotive paint, body work, paint correction, polishing or window tint. But I don’t think anyone should be scared to learn these skills in fear of damaging something they own. Anything can be fixed, may take some time and a little bit of money, but if you’re not constantly learning what fun is life?
I bought my 1995 Toyota Supra over the winter of 2016/2017. My Supra was in fairly “good” shape considering its a 25 year old car, however that wasn’t good enough for me!
Thanks to the help of a few close friends and youtube, I was able to learn the essential skills of doing automotive body work. This included hammering metal to fit properly, welding in patch metal for rusted panels, adding filler in low spots or rough areas and then how to “block” sand a panel to achieve a very flat surface that gives you that beautiful glassy reflection.
Moving on from sanding you get into primer and surfacer. Ever heard of this? Never in my life would I have believed someone if they told me that spraying such a thin layer of material and then sanding it could change the appearance of the final product so much. After countless coats and blocking I ended up with what experts would call a PERFECT surface to apply paint.
Feeling confident in my prep work, I hauled my car off to be painted by a professional. I chose to utilize a professional painter on this project due to the value of my car, supras in perfect condition are worth between $40,000 and $100,000… not a risk I was willing to take.
AND a few LONG weeks later! WE HAVE A PAINTED CAR!
Now the long and tedious process of reassembly begins. Fresh paint is extremely soft, in the first 30 days it goes through a process called “outgassing” during which the chemical reaction which causes the paint to harden finishes. Any sort of wax or sealer on the paint during this time would cause the paint to remain soft and easy to damage.
After carefully reassembling the car and paying a lot of attention to delicate pieces and edges of panels, you end up with a final product something like this.
But I just couldn’t stop there!
The idea behind paint correction is to “sand” the painted surface to be entirely flat. Ever been to a car show or seen a car that looks like a piece of glass with a reflection so clear you can see yourself? That’s paint correction. All paint naturally has whats called “orange peel” which is that reflective texture in the clear that looks like an orange, while paint is drying there’s a differential in the dry time which creates micro dimples on the surface because of tension.
I have more pictures, need to find them and put them here.
Engine / Electrical:
My car has been in ohio its whole 128,000 mile life.. needless to say it saw some winter road salt here… and well.. it fared okay but that’s simply not good enough! See the theme yet?
Sand blasted and powder coated!
Back in the car fresh as hell!
Several years ago I was given a small network switch from my high school. The switch was defective and dropped packets constantly so I wanted to give it new life.
Removed the audio port riser from the motherboard so it would fit in the unit all the way.
Got a 1U heatsink for a server from dynatron. Clears the lid just perfectly with back plate!
Fired up the system to do a load test to see if the blower was adequately powerful cooling.
Got our Intel 1G nic mounted with flexible PCI-e x4 adapter cable.
Soldered the internal terminals of the uplink port to a cat5 cable and plugged it in to our nic.
Made some lexan disk mounts and airflow containment.
Stacked sata cables are a challenge to figure out and get 2 compatible cables.
Soldered USB headers onto 4 of the ethernet ports and made ethernet to usb adapter cables!
Installing linux with software raid 1.
All done, you would never know!
About 5 years ago we bought some nimble storage arrays for customer services… well those things are out of production and since they have the street value of 3 pennys I figured it was time to reverse engineer and use them for other purposes.
The enclosure is made by supermicro, its a bridge bay server which has 2 E5600 based systems attached to one side of the SAS backplane and 2 internal 10G interfaces. It appears they have a USB drive to boot an image of the OS and then they store configuration on a shared LVM or some sort of cluster filesystem on the drives themselves. Each controller has what looks like a 1GB NVRam to Flash pci-e card that is used to ack writes as they come in, and get mirrored internally over the 10G interfaces.
I plan to use one controller (server) as my Plex Media box and the other one for virtual machines. The plan right now is to use BTRFS for the drives and use BCache for SSD acceleration of the block devices. I can run iSCSI over the internal interface to provide storage to the 2nd controller as VM host.
To be continued.
Found out both of my controllers had bad motherboards, one was fine with a single cpu and would randomly restart, the other wouldn’t post. I feel bad for anyone still running a nimble, its a ticking time bomb. So I grabbed 2 controllers off ebay for $100 shipped, they got here today and both were good. I went ahead and flashed the firmware to the supermicro vanilla so I could get access to the bios. I had to use the internal USB port as nimbles firmware disables the rest of the USB boot devices and the bios password is set even with defaults so you can’t login. I tried the available password on the ole interwebs but nothing seemed to work, it only accepts 6 chars but the online passwords are 8-12.
Looks like bcacheFS is gonna be the next badass filesystem now that btrfs has been dropped by redhat. Will have full write offloading and cache support like ZFS so we can use the NVRam card. Speaking of write cache, I have an email into NetList to try and get the kernel module for their 1G NVram write cache card. Worse case scenario I have to pull it out of the kernel nimble was using…
As of writing this I have both controllers running CentOS7 installed to their own partitions on the first drive in the array, and I have /boot and the boot loader installed to the 4G USB drives that nimble had their bootloader installed to.
sda 8:0 0 558.9G 0 disk sdb 8:16 0 558.9G 0 disk sdc 8:32 0 558.9G 0 disk sdd 8:48 0 558.9G 0 disk sde 8:64 0 1.8T 0 disk sdf 8:80 0 1.8T 0 disk sdg 8:96 0 1.8T 0 disk sdh 8:112 0 1.8T 0 disk sdi 8:128 0 1.8T 0 disk sdj 8:144 0 1.8T 0 disk sdk 8:160 0 1.8T 0 disk sdl 8:176 0 1.8T 0 disk sdm 8:192 0 1.8T 0 disk sdn 8:208 0 1.8T 0 disk sdo 8:224 0 1.8T 0 disk sdp 8:240 0 1.8T 0 disk sdq 65:0 0 3.8G 0 disk
And I went ahead and created an MDRaid array on 6 of the spindle disk with LVM to get started messing with it. I need to get bcachefs compiled to the kernel and give that a go, will come with time!
Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdj sdi sdh sdg sdf sde 9766912000 blocks super 1.2 level 5, 512k chunk, algorithm 2 [6/5] [UUUUU_] [=>...................] recovery = 7.7% (151757824/1953382400) finish=596.9min speed=50304K/sec bitmap: 5/15 pages [20KB], 65536KB chunk
Maybe I’ll dabble with iSCSI tomorrow.
Installed Plex Tonight, spent some time getting sonarr and other msc tools for acquring metadata and video from the interballs. Also started investigating bcache and bacachefs deployment in CentOS. http://10sa.com/sql_stories/?p=1052
Also started investigating some water blocks to potentially use water cooling on my NAS… its too loud and buying different heatsinks doesn’t seem very practical when a water block is $15 on ebay
I am def going to use water cooling, the 40mm fans are really annoying and this system has rather powerful E5645 cpus which have decent thermal output. I found some 120MM aluminum radiators in ebay for almost nothing, so 2 blocks + fittings + hose is going to be around $80 per system. I need to find a cheap pump option but I think I know what I’m doing there.
Heres a picture of one of the controller modules with the fans and a cpu removed.
A 80mm fan fits perfectly and 2 of the 3 bolt holes even line up to mount it in the rear of the chassis. I will most likely order some better fans from delta with PWM/Speed capability so that the SM smart bios can properly speed them up and down. You can see that supermicro/nimble put 0 effort into airflow management in these systems. They are using 1U heatsinks with no ducting at all so airflow is “best efforts” I would guess the front cpu probably runs 40-50C most of its life simply due to the fact airflow is only created by a fixed 40mm fan in front of it.
Welp I got the news I figured I would about the NV1 card from NetList, it is EOL and they stopped driver r development for it. They were nice enough to send me ALL of the documentation and kernel module though, it supports up to kernel 2.6.38 so you could run latest centos 6 and get it supported.. maybe ill mess with that? I attached it here incase anyone wants the firmware or linux kernel module driver for the Netlist NV1. Netlist-1.4-6 Release
Some devices struggle with persistent ownership due to the driver. I have some OCZ ssd used for journal that are affected by this.
So I’ve created a udev rule to assign them to the proper user during boot.
Add this to /etc/udev/rules.d/89-ceph-journal.rules
KERNEL=="oczpcie*?" SUBSYSTEM=="block" OWNER="ceph" GROUP="disk" MODE="0660"
Then retrigger it to test
udevadm trigger --action=add
ls -lh /dev/oczpcie_3_0_ssd* brw-rw---- 1 ceph disk 251, 0 Jul 14 13:01 /dev/oczpcie_3_0_ssd brw-rw---- 1 ceph disk 251, 1 Jul 14 13:01 /dev/oczpcie_3_0_ssd1 brw-rw---- 1 ceph disk 251, 4 Jul 14 13:01 /dev/oczpcie_3_0_ssd4 brw-rw---- 1 ceph disk 251, 5 Jul 14 13:01 /dev/oczpcie_3_0_ssd5 brw-rw---- 1 ceph disk 251, 6 Jul 14 13:01 /dev/oczpcie_3_0_ssd6 brw-rw---- 1 ceph disk 251, 7 Jul 14 13:01 /dev/oczpcie_3_0_ssd7 brw-rw---- 1 ceph disk 251, 8 Jul 14 13:01 /dev/oczpcie_3_0_ssd8 brw-rw---- 1 ceph disk 251, 9 Jul 14 13:01 /dev/oczpcie_3_0_ssd9
If you’re having inventory or hardware issues during discovery in UCS, there is a few commands that can help clear it up and get the system to properly inventory.
The latest method I’ve learned about from TAC is to do the following.
decommission slot 6/5
reset slot 6/5
acknowledge slot 6/5
Grab storage software from: https://www.micron.com/products/solid-state-storage/storage-executive-software
mkdir mnt sudo mount -o loop /path/to/the/iso mnt mkdir tmp cd tmp gunzip -c ../mnt/boot/core.gz | cpio -i sudo /path/to/msecli -U -i opt/firmware -n /dev/sdX -r
hdparm --user-master u --security-set-pass Eins /dev/X hdparm --user-master u --security-erase Eins /dev/X