Whenever possible, I like running software in containers instead of kvms. Aside from the obvious performance gains, server density increases significantly since you’re not kidnapping huge chunks of DRAM from the OS and holding it hostage.
I recently had a need to setup an elasticsearch 5.x cluster on a SmartOS machine. It was mostly straight-forward except for a couple gotchas. Here’s how you do it.
1. Create the zone/container. Here, we’re just using a stock ubuntu 16.04 LTS image. Note, the key here is the max_lwps field. Elasticsearch requires at least 2048.
vmadm create << EOF { "brand": "lx", "image_uuid": "7b5981c4-1889-11e7-b4c5-3f3bdfc9b88b", "autoboot": true, "alias": "elastic1", "hostname": "es01", "dns_domain": "example.com", "resolvers": [ "192.168.1.1", "8.8.8.8" ], "max_physical_memory": 8192, "max_swap": 4096, "quota": 60, "max_lwps": 2048, "nics": [ { "nic_tag": "admin", "ip": "192.168.1.100", "netmask": "255.255.255.0", "gateway": "192.168.1.1", "primary": true } ] } EOF
2. Login to the container and install elasticsearch
zlogin `vmadm list | awk '/elastic/{print $1}'` echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" &gt; /etc/apt/sources.list.d/elastic-5.x.list apt-get update ; apt-get install elasticsearch
3. Disable system_call_filter install during bootstrap phase
echo "bootstrap.system_call_filter: false" >> /etc/elasticsearch/elasticsearch.yml
4. Enable and fire it up!
systemctl enable elasticsearch ; systemctl start elasticsearch
5. Tail the logs to make sure everything started up OK.
tail -f /var/log/elasticsearch/elasticsearch.log
Leave a Reply
You must be logged in to post a comment.