Skip to content

Setup mincat on baremetal

Allan Roger Reid edited this page Sep 25, 2024 · 5 revisions

MinCat AiStor

image

Setup certs

mkdir -p ~/.minio/certs/CAs
cd ~/.minio/certs
wget https://github.com/minio/certgen/releases/latest/download/certgen-linux-amd64
chmod +x certgen-linux-amd64
./certgen-linux-amd64 -host "127.0.0.1,localhost"

Install minio

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/minio
sudo vi /etc/systemd/system/minio-mincat.service
####
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=ubuntu
Group=ubuntu
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio-mincat
ExecStart=/usr/local/bin/minio server $MINIO_OPTS

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})
####
sudo vi /etc/systemd/system/minio-mincat-source.service
####
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=ubuntu
Group=ubuntu
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio-mincat-source
ExecStart=/usr/local/bin/minio server $MINIO_OPTS

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})
####
sudo vi /etc/systemd/system/minio-mincat-target.service
####
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=ubuntu
Group=ubuntu
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio-mincat-target
ExecStart=/usr/local/bin/minio server $MINIO_OPTS

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})
####

Install mincat

sudo vi /etc/default/minio-mincat
####
# do paths in your home directory
MINIO_CI_CD=1

MINIO_ERASURE_SET_DRIVE_COUNT=2

# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

MINIO_OPTS="--config /home/ubuntu/.minio/config-mincat.yaml"
####
sudo vi /etc/default/minio-mincat-source
####
# do paths in your home directory
MINIO_CI_CD=1

MINIO_ERASURE_SET_DRIVE_COUNT=2

# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

MINIO_OPTS="--config /home/ubuntu/.minio/config-mincat-source.yaml"
####
sudo vi /etc/default/minio-mincat-target
####
# do paths in your home directory
MINIO_CI_CD=1

MINIO_ERASURE_SET_DRIVE_COUNT=2

# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

MINIO_OPTS="--config /home/ubuntu/.minio/config-mincat-target.yaml"
####

Grant user permissions on minio

sudo mkdir /minio
mkdir ~/.minio
sudo chown -R ubuntu:ubuntu /minio

Configure minio

vi ~/.minio/config-mincat.yaml
####
version: v1
address: ":9000"
rootUser: "minioadmin"
rootPassword: "minio-secret-key-minioadmin"
console-address: ":9001"
pools: # Specify the nodes and drives with pools
  -
- "/minio/data1/mincat"
####
vi ~/.minio/config-mincat-source.yaml
####
version: v1
address: ":9002"
rootUser: "minioadmin"
rootPassword: "minio-secret-key-minioadmin"
console-address: ":9003"
pools: # Specify the nodes and drives with pools
  -
- "/minio/data1/mincat-source"
####
vi ~/.minio/config-mincat-target.yaml
####
version: v1
address: ":9004"
rootUser: "minioadmin"
rootPassword: "minio-secret-key-minioadmin"
console-address: ":9005"
pools: # Specify the nodes and drives with pools
  -
- "/minio/data1/mincat-target"
####

Start minio services

sudo systemctl enable --now minio-mincat.service
sudo systemctl enable --now minio-mincat-source.service
sudo systemctl enable --now minio-mincat-target.service
sudo systemctl daemon-reload
sudo systemctl start minio-mincat.service
sudo systemctl start minio-mincat-source.service
sudo systemctl start minio-mincat-target.service
sudo systemctl status minio-mincat.service
sudo systemctl status minio-mincat-source.service
sudo systemctl status minio-mincat-target.service

Install mincat

Get from https://github.com/miniohq/mincat/actions/workflows/rust-nightly.yml e.g.

scp -P 20464 -o "ServerAliveInterval=5" -o "ServerAliveCountMax=100000" -o "StrictHostKeyChecking=off" /Users/allanreid/Downloads/mincat-linux-amd64-nightly.zip ubuntu@a.b.c.d:/home/ubuntu/
sudo apt install -y unzip
unzip mincat-linux-amd64-nightly.zip
chmod +x mincat
sudo mv mincat /usr/local/bin/
mkdir ~/.mincat
cat << EOF > /home/ubuntu/.mincat/config-mincat-1m.yaml
store:
  bucket: mincat
  prefix: index
  minio_endpoint: "https://127.0.0.1:9000"
  minio_access_key: "minioadmin"
  minio_secret_key: "minio-secret-key-minioadmin"
  local_cache_dir: "/tmp/mincat"

buckets: [bucket-1k, bucket-1m]
address: "0.0.0.0:10010"
minio_endpoint: "https://127.0.0.1:9002"
minio_access_key: "minioadmin"
minio_secret_key: "minio-secret-key-minioadmin"
EOF
sudo vi /etc/systemd/system/mincat-1m.service
####
[Unit]
Description=MinCat
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/mincat
AssertFileNotEmpty=/home/ubuntu/.mincat/config-mincat-1m.yaml

[Service]
# Type=notify
Type=exec

WorkingDirectory=/home/ubuntu/.mincat/

User=ubuntu
Group=ubuntu
ProtectProc=invisible

EnvironmentFile=-/etc/default/mincat
ExecStart=/usr/local/bin/mincat serve -C /home/ubuntu/.mincat/config-mincat-1m.yaml

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity

SendSIGKILL=no

[Install]
WantedBy=multi-user.target
####
sudo vi /etc/default/mincat
####
MINIO_LICENSE_FILE=/home/ubuntu/.mincat/minio.license
MINCAT_TRUSTED_ROOT_CERT_FILE=/home/ubuntu/.minio/certs/public.crt
####
cat << EOF > /home/ubuntu/.mincat/minio.license
eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJhaWQiOjIsImFwaUtleSI6ImU2NDcxZDk5LTYyMTItMWNhNS04MjQ2LTc4NzBjYTM3YWMzMCIsImNhcCI6MjAwLCJleHAiOjE3MzUwODQ4MDAsImlhdCI6MS43MTA2NTc0OTE1ODkyNTM3MTllOSwiaXNzIjoic3VibmV0QG1pbi5pbyIsImxpZCI6ImE3NWQ0ZGNiLWY3ZjAtNDA3ZC1iZDc0LTJiMzVmNzZmNzYzZCIsIm9yZyI6IlNwYWNlbHkgU3Byb2NrZXRzIEluYy4iLCJwbGFuIjoiRU5URVJQUklTRS1MSVRFIiwic3ViIjoic3VibmV0QG1pbi5pbyIsInRyaWFsIjpmYWxzZX0.Zt8iUC3xN2glPPDBH6OeJND3LklGa3Zwi2hcdybCHeSLooDmseybmPKP6AjDkFhBPgCOEoJEtZJlYyS-CgQyP615qcn0uwRbmeGyvV9jNs-97cCT66AAvwNizwQDxZ69
EOF

Start mincat service

sudo systemctl daemon-reload
sudo systemctl enable --now mincat-1m.service
sudo systemctl restart mincat-1m.service
sudo systemctl status mincat-1m.service
sudo journalctl -f -u mincat-1m.service

Setup mc

cp ~/.minio/certs/public.crt ~/.mc/certs/CAs/
mc alias set mincat https://127.0.0.1:9000 minioadmin minio-secret-key-minioadmin
mc mb mincat/mincat
mc alias set mincat-source https://127.0.0.1:9002 minioadmin minio-secret-key-minioadmin
mc alias set mincat-target https://127.0.0.1:9004 minioadmin minio-secret-key-minioadmin

Create baseline files

rm -rf ~/source1k
mkdir -p ~/source1k && cd ~/source1k
dd if=/dev/urandom bs=1K count=1000 iflag=fullblock of=object
split -a 7 -d -b 1KiB ~/source1k/object object && rm -rf ~/source1k/object

Create multiple 2 prefix level object buckets

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin
cd ~ && vi mydata1k.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-1k
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..1}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata1k.sh && nohup ./mydata1k.sh > out1k.log &

--

cd ~ && vi mydata1kv.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-1kv
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..1}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata1kv.sh && nohup ./mydata1kv.sh > out1kv.log &

--

cd ~ && vi mydata1kvd.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-1kvd
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..1}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata1kvd.sh && nohup ./mydata1kvd.sh > out1kvd.log &

--

cd ~ && vi mydata10k.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-10k
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata10k.sh && nohup ./mydata10k.sh > out10k.log &

--

cd ~ && vi mydata10kv.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-10kv
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata10kv.sh && nohup ./mydata10kv.sh > out10kv.log &

--

cd ~ && vi mydata10kvd.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-10kvd
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata10kvd.sh && nohup ./mydata10kvd.sh > out10kvd.log &

--

cd ~ && vi mydata100k.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-100k
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..10}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata100k.sh && nohup ./mydata100k.sh > out100k.log &

--

cd ~ && vi mydata100kv.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-100kv
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..10}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata100kv.sh && nohup ./mydata100kv.sh > out100kv.log &

--

cd ~ && vi mydata100kvd.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-100kvd
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET
mc version enable $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..10}; do
  for j in {1..10}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata100kvd.sh && nohup ./mydata100kvd.sh > out100kvd.log &

--

cd ~ && vi mydata1m.sh
####
#!/bin/bash
ALIAS=mincat-source
BUCKET=bucket-1m
echo "Preparing minio..." >&2
mc rb --force $ALIAS/$BUCKET
mc mb $ALIAS/$BUCKET

started_total=$(date +%s)
echo "Starting population..." >&2
for i in {1..1}; do
  for j in {1..1000}; do
echo "Starting set i.$j..." >&2
if [ $j -eq 1 ]; then
(var= && started=$(date +%s) && var=$(mc cp --recursive --tags "set1=$i&&set2=$j" ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
else
(var= && started=$(date +%s) && var=$(mc cp --recursive ~/source1k/ $ALIAS/$BUCKET/myprefix$i/myprefix$j | grep -o "Total.*") && ended=$(date +%s) && echo "Populated myprefix$i/myprefix$j: $(($ended - $started))[s] - $var" >&2)
fi
  done
done
ended_total=$(date +%s)
echo "Done population: $(($ended_total - $started_total))[s]" >&2
####

chmod +x mydata1m.sh && nohup ./mydata1m.sh > out1m.log &

Setup unversioned mincat bucket with fuzzed patterns

mc mb mincat-source/bucket-1k-fuzz
mc rb --force mincat-source/bucket-1k-fuzz
mc rm -r --force mincat-source/bucket-1k-fuzz
mc cp --recursive ~/fuzz_objects mincat-source/bucket-1k-fuzz/prefix1
mc ls mincat-source/bucket-1k-fuzz/prefix1/fuzz_objects

fuzz_objects.sh
###
#!/bin/bash
suffix=
for i in $(seq 1 1000)
do
    if (( i <= 250 )); then
      suffix=?
    elif (( i <= 500 )); then
      suffix=*
    elif (( i <= 750 )); then
      suffix=[
    else
      suffix=]
    fi
    printf -v pad "%04d" $i
    dd if=/dev/zero of=~/fuzz_objects/object-$pad-$suffix bs=1K count=$i 2>/dev/null
done
###

GraphQL

Navigate to http://mincat.minio.training:10010

Setup replication

mc admin config set mincat-source scanner speed=slowest
mc admin config set mincat-target scanner speed=slowest

mc mb mincat-target/bucket-1kv
mc version enable mincat-target/bucket-1kv
mc replicate add mincat-source/bucket-1kv --remote-bucket mincat-target/bucket-1kv --priority 1

mc mb mincat-target/bucket-10kv
mc version enable mincat-target/bucket-10kv
mc replicate add mincat-source/bucket-10kv --remote-bucket mincat-target/bucket-10kv --priority 1

mc mb mincat-target/bucket-100kv
mc version enable mincat-target/bucket-100kv
mc replicate add mincat-source/bucket-100kv --remote-bucket mincat-target/bucket-100kv --priority 1
Clone this wiki locally