рд╡рд┐рддрд░рд┐рдд рдлреЙрд▓реНрдЯ-рд╕рд╣рд┐рд╖реНрдгреБ LeoFS рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬрдЪреА рд╕реНрдерд╛рдкрдирд╛, S3, NFS рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рд╕реБрд╕рдВрдЧрдд

рдорддреЗ рдУрдкрдирдиреЗрдЯ: LeoFS тАФ рд╡рд┐рддрд░рд┐рдд рдлреЙрд▓реНрдЯ-рд╕рд╣рд┐рд╖реНрдгреБ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ LeoFS, Amazon S3 API рдЖрдгрд┐ REST-API рд╡рд╛рдкрд░рдгрд╛рд░реНтАНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рд╕реБрд╕рдВрдЧрдд, рдЖрдгрд┐ NFS рд╕рд░реНрд╡реНрд╣рд░ рдореЛрдбрд▓рд╛ рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерди рджреЗрддреЗ. рд▓рд╣рд╛рди рдЖрдгрд┐ рдЦреВрдк рдореЛрдареНрдпрд╛ рджреЛрдиреНрд╣реА рд╡рд╕реНрддреВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЖрд╣реЗрдд, рдПрдХ рдЕрдВрдЧрднреВрдд рдХреЕрд╢рд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдордзреАрд▓ рд╕реНрдЯреЛрд░реЗрдЬрдЪреА рдкреНрд░рддрд┐рдХреГрддреА рд╢рдХреНрдп рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЙрджреНрджрд┐рд╖реНрдЯрд╛рдВрдордзреНрдпреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдХреГрддреАрджреНрд╡рд╛рд░реЗ 99.9999999% рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЕрдкрдпрд╢рд╛рдЪрд╛ рдПрдХ рдореБрджреНрджрд╛ рджреВрд░ рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдПрд░реНрд▓рд╛рдВрдЧрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ.

LeoFS рдордзреНрдпреЗ рддреАрди рдШрдЯрдХ рдЕрд╕рддрд╛рдд:

  • LeoFS рд╕реНрдЯреЛрд░реЗрдЬ тАФ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрдгрд┐ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬреЛрдбрдгреЗ, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╣рдЯрд╡рдгреЗ рдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рд╕реЗрд╡рд╛ рджреЗрддреЗ, рдкреНрд░рддрд┐рдХреГрддреА, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рдирдВрддреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ.
  • LeoFS рдЧреЗрдЯрд╡реЗ тАФ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рджреЗрддреЗ рдЖрдгрд┐ REST-API рдХрд┐рдВрд╡рд╛ S3-API рд╡рд╛рдкрд░реВрди рдХреНрд▓рд╛рдпрдВрдЯрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ, рдореЗрдорд░реА рдЖрдгрд┐ рдбрд┐рд╕реНрдХрд╡рд░реАрд▓ рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛рдЪреЗ рдХреЕрд╢рд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ.
  • LeoFS рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ тАФ LeoFS рдЧреЗрдЯрд╡реЗ рдЖрдгрд┐ LeoFS рд╕реНрдЯреЛрд░реЗрдЬ рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ, рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рдЖрдгрд┐ рдЪреЗрдХрд╕рдо рддрдкрд╛рд╕рддреЗ. рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдЖрдгрд┐ рдЙрдЪреНрдЪ рд╕реНрдЯреЛрд░реЗрдЬ рдЙрдкрд▓рдмреНрдзрддреЗрдЪреА рд╣рдореА рджреЗрддреЗ.

рдпрд╛ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рдЖрдореНрд╣реА рдЙрддреНрддрд░рджрд╛рдпреА-рдкреНрд▓реЗрдмреБрдХ рд╡рд╛рдкрд░реВрди Leofs рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рдЖрдгрд┐ S3, NFS рдЪрд╛рдЪрдгреА рдХрд░реВ.

рдЖрдкрдг рдЕрдзрд┐рдХреГрдд рдкреНрд▓реЗрдмреБрдХ рд╡рд╛рдкрд░реВрди LeoFS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓реНрдпрд╛рд╕, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡рд┐рд╡рд┐рдз рддреНрд░реБрдЯреА рдЖрдврд│рддреАрд▓: 1,2. рдпрд╛ рдЪреБрдХрд╛ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рдп рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рддреЗ рдореА рдпрд╛ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рд▓рд┐рд╣реАрди.

рдЬрд┐рдереЗ рддреБрдореНрд╣реА рдЙрддреНрддрд░рджрд╛рдпреА-рдкреНрд▓реЗрдмреБрдХ рдЪрд╛рд▓рд╡рд╛рд▓, рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрдХреЕрдЯ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЙрджрд╛рд╣рд░рдг рдпрд╛рджреА

рдЙрджрд╛рд╣рд░рдг рдЗрдиреНрд╡реНрд╣реЗрдВрдЯрд░реА (hosts.sample repository рдордзреНрдпреЗ):

# Please check roles/common/vars/leofs_releases for available versions
[all:vars]
leofs_version=1.4.3
build_temp_path="/tmp/leofs_builder"
build_install_path="/tmp/"
build_branch="master"
source="package"

#[builder]
#172.26.9.177

# nodename of leo_manager_0 and leo_manager_1 are set at group_vars/all
[leo_manager_0]
172.26.9.176

# nodename of leo_manager_0 and leo_manager_1 are set at group_vars/all
[leo_manager_1]
172.26.9.178

[leo_storage]
172.26.9.179 [email protected]
172.26.9.181 [email protected]
172.26.9.182 [email protected]
172.26.9.183 [email protected]

[leo_gateway]
172.26.9.180 [email protected]
172.26.9.184 [email protected]

[leofs_nodes:children]
leo_manager_0
leo_manager_1
leo_gateway
leo_storage

рд╕рд░реНрд╡реНрд╣рд░рдЪреА рддрдпрд╛рд░реА

рд╕реЗрд▓рд┐рдирдХреНрд╕ рдЕрдХреНрд╖рдо рдХрд░рдд рдЖрд╣реЗ. рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рд╕рдореБрджрд╛рдп LeoFS рд╕рд╛рдареА Selinux рдзреЛрд░рдгреЗ рддрдпрд╛рд░ рдХрд░реЗрд▓.

    - name: Install libselinux as prerequisite for SELinux Ansible module
      yum:
        name: "{{item}}"
        state: latest
      with_items:
        - libselinux-python
        - libsemanage-python

    - name: Disable SELinux at next reboot
      selinux:
        state: disabled

    - name: Set SELinux in permissive mode until the machine is rebooted
      command: setenforce 0
      ignore_errors: true
      changed_when: false

рд╕реЗрдЯрд┐рдВрдЧ netcat ╨╕ redhat-lsb-core. netcat рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ leofs-adm, redhat-lsb-core OS рдЖрд╡реГрддреНрддреА рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдпреЗрдереЗ.

    - name: Install Packages
      yum: name={{ item }} state=present
      with_items:
        - nmap-ncat
        - redhat-lsb-core

рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд▓реАрдУрдлреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рддреЗ рд╡реНрд╣реАрд▓ рдЧреНрд░реБрдкрдордзреНрдпреЗ рдЬреЛрдбрдгреЗ

    - name: Create user leofs
      group:
        name: leofs
        state: present

    - name: Allow 'wheel' group to have passwordless sudo
      lineinfile:
        dest: /etc/sudoers
        state: present
        regexp: '^%wheel'
        line: '%wheel ALL=(ALL) NOPASSWD: ALL'
        validate: 'visudo -cf %s'

    - name: Add the user 'leofs' to group 'wheel'
      user:
        name: leofs
        groups: wheel
        append: yes

рдПрд░реНрд▓рд╛рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

    - name: Remote erlang-20.3.8.23-1.el7.x86_64.rpm install with yum
      yum: name=https://github.com/rabbitmq/erlang-rpm/releases/download/v20.3.8.23/erlang-20.3.8.23-1.el7.x86_64.rpm

рджреБрд░реБрд╕реНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд▓реЗрдмреБрдХрдЪреА рд╕рдВрдкреВрд░реНрдг рдЖрд╡реГрддреНрддреА рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ: https://github.com/patsevanton/leofs_ansible

рд╕реНрдерд╛рдкрдирд╛, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рд▓реЙрдиреНрдЪ

рдкреБрдвреЗ рдЖрдореНрд╣реА рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ https://github.com/leo-project/leofs_ansible build_leofs.yml рд╢рд┐рд╡рд╛рдп

## Install LeoFS
$ ansible-playbook -i hosts install_leofs.yml

## Config LeoFS
$ ansible-playbook -i hosts config_leofs.yml

## Start LeoFS
$ ansible-playbook -i hosts start_leofs.yml

рдкреНрд░рд╛рдердорд┐рдХ рд▓рд┐рдУ рдореЕрдиреЗрдЬрд░рд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдд рдЖрд╣реЗ

leofs-adm status

рдЙрддреНрддрд░рджрд╛рдпреА-рдкреНрд▓реЗрдмреБрдХ рд▓реЙрдЧрдордзреНрдпреЗ рдкреНрд░рд╛рдердорд┐рдХ рдЖрдгрд┐ рдорд╛рдзреНрдпрдорд┐рдХ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд

рд╡рд┐рддрд░рд┐рдд рдлреЙрд▓реНрдЯ-рд╕рд╣рд┐рд╖реНрдгреБ LeoFS рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬрдЪреА рд╕реНрдерд╛рдкрдирд╛, S3, NFS рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рд╕реБрд╕рдВрдЧрдд

рд╡рд┐рддрд░рд┐рдд рдлреЙрд▓реНрдЯ-рд╕рд╣рд┐рд╖реНрдгреБ LeoFS рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬрдЪреА рд╕реНрдерд╛рдкрдирд╛, S3, NFS рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рд╕реБрд╕рдВрдЧрдд

рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЕрд╕реЗрд▓

 [System Confiuration]
-----------------------------------+----------
 Item                              | Value    
-----------------------------------+----------
 Basic/Consistency level
-----------------------------------+----------
                    system version | 1.4.3
                        cluster Id | leofs_1
                             DC Id | dc_1
                    Total replicas | 2
          number of successes of R | 1
          number of successes of W | 1
          number of successes of D | 1
 number of rack-awareness replicas | 0
                         ring size | 2^128
-----------------------------------+----------
 Multi DC replication settings
-----------------------------------+----------
 [mdcr] max number of joinable DCs | 2
 [mdcr] total replicas per a DC    | 1
 [mdcr] number of successes of R   | 1
 [mdcr] number of successes of W   | 1
 [mdcr] number of successes of D   | 1
-----------------------------------+----------
 Manager RING hash
-----------------------------------+----------
                 current ring-hash | a0314afb
                previous ring-hash | a0314afb
-----------------------------------+----------

 [State of Node(s)]
-------+----------------------+--------------+---------+----------------+----------------+----------------------------
 type  |         node         |    state     | rack id |  current ring  |   prev ring    |          updated at         
-------+----------------------+--------------+---------+----------------+----------------+----------------------------
  S    | [email protected]      | running      |         | a0314afb       | a0314afb       | 2019-12-05 10:33:47 +0000
  S    | [email protected]      | running      |         | a0314afb       | a0314afb       | 2019-12-05 10:33:47 +0000
  S    | [email protected]      | running      |         | a0314afb       | a0314afb       | 2019-12-05 10:33:47 +0000
  S    | [email protected]      | attached     |         |                |                | 2019-12-05 10:33:58 +0000
  G    | [email protected]      | running      |         | a0314afb       | a0314afb       | 2019-12-05 10:33:49 +0000
  G    | [email protected]      | running      |         | a0314afb       | a0314afb       | 2019-12-05 10:33:49 +0000
-------+----------------------+--------------+---------+----------------+----------------+----------------------------

рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ

leofs рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХрд░рд╛:

leofs-adm create-user leofs leofs

  access-key-id: 9c2615f32e81e6a1caf5
  secret-access-key: 8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb

рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА:

leofs-adm get-users
user_id     | role_id | access_key_id          | created_at                
------------+---------+------------------------+---------------------------
_test_leofs | 9       | 05236                  | 2019-12-02 06:56:49 +0000
leofs       | 1       | 9c2615f32e81e6a1caf5   | 2019-12-02 10:43:29 +0000

рдПрдХ рдмрд╛рджрд▓реА рддрдпрд╛рд░ рдХрд░рд╛

рдПрдХ рдмрд╛рджрд▓реА рдХреЗрд▓реА

leofs-adm add-bucket leofs 9c2615f32e81e6a1caf5
OK

рдмрд╛рджрд▓реА рдпрд╛рджреА:

 leofs-adm get-buckets
cluster id   | bucket   | owner  | permissions      | created at                
-------------+----------+--------+------------------+---------------------------
leofs_1      | leofs    | leofs  | Me(full_control) | 2019-12-02 10:44:02 +0000

s3cmd рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдд рдЖрд╣реЗ

рдХреНрд╖реЗрддреНрд░рд╛рдд HTTP Proxy server name рдЧреЗрдЯрд╡реЗ рд╕рд░реНрд╡реНрд╣рд░ IP рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛

s3cmd --configure 

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key [9c2615f32e81e6a1caf5]: 
Secret Key [8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb]: 
Default Region [US]: 

Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
S3 Endpoint [s3.amazonaws.com]: 

Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used
if the target S3 system supports dns based buckets.
DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: leofs

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: 
Path to GPG program [/usr/bin/gpg]: 

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [No]: 

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name [172.26.9.180]: 
HTTP Proxy server port [8080]: 

New settings:
  Access Key: 9c2615f32e81e6a1caf5
  Secret Key: 8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb
  Default Region: US
  S3 Endpoint: s3.amazonaws.com
  DNS-style bucket+hostname:port template for accessing a bucket: leofs
  Encryption password: 
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: False
  HTTP Proxy server name: 172.26.9.180
  HTTP Proxy server port: 8080

Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Not configured. Never mind.

Save settings? [y/N] y
Configuration saved to '/home/user/.s3cfg'

рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛рд╕ ERROR: S3 рддреНрд░реБрдЯреА: 403 (рдкреНрд░рд╡реЗрд╢ рдирд╛рдХрд╛рд░рд▓рд╛): рдкреНрд░рд╡реЗрд╢ рдирд╛рдХрд╛рд░рд▓рд╛:

s3cmd put test.py s3://leofs/
upload: 'test.py' -> 's3://leofs/test.py'  [1 of 1]
 382 of 382   100% in    0s     3.40 kB/s  done
ERROR: S3 error: 403 (AccessDenied): Access Denied

рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ s3cmd рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ signature_v2 True рдордзреНрдпреЗ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдпрд╛рдордзреНрдпреЗ рддрдкрд╢реАрд▓ рд╕рдорд╕реНрдпрд╛.

рд╕реНрд╡рд╛рдХреНрд╖рд░реА_v2 рдЕрд╕рддреНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рдЕрд╢реА рддреНрд░реБрдЯреА рдЕрд╕реЗрд▓:

WARNING: Retrying failed request: /?delimiter=%2F (getaddrinfo() argument 2 must be integer or string)
WARNING: Waiting 3 sec...
WARNING: Retrying failed request: /?delimiter=%2F (getaddrinfo() argument 2 must be integer or string)
WARNING: Waiting 6 sec...
ERROR: Test failed: Request failed for: /?delimiter=%2F

рд▓реЛрдб рдЪрд╛рдЪрдгреА

1GB рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛

fallocate -l 1GB 1gb

Leofs рд╡рд░ рдЕрдкрд▓реЛрдб рдХрд░рд╛

time s3cmd put 1gb s3://leofs/
real    0m19.099s
user    0m7.855s
sys 0m1.620s

рдЖрдХрдбреЗрд╡рд╛рд░реА

1 рдиреЛрдбрд╕рд╛рдареА leofs-adm du:

leofs-adm du [email protected]
 active number of objects: 156
  total number of objects: 156
   active size of objects: 602954495
    total size of objects: 602954495
     ratio of active size: 100.0%
    last compaction start: ____-__-__ __:__:__
      last compaction end: ____-__-__ __:__:__

рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА рдирд┐рд╖реНрдХрд░реНрд╖ рдлрд╛рд░рд╕рд╛ рдорд╛рд╣рд┐рддреАрдкреВрд░реНрдг рдирд╛рд╣реА.

рд╣реА рдлрд╛рдИрд▓ рдХреБрдареЗ рдЖрд╣реЗ рддреЗ рдкрд╛рд╣реВ.
leofs-adm whereis leofs/1gb

leofs-adm whereis leofs/1gb
-------+----------------------+--------------------------------------+------------+--------------+----------------+----------------+----------------+----------------------------
 del?  |         node         |             ring address             |    size    |   checksum   |  has children  |  total chunks  |     clock      |             when            
-------+----------------------+--------------------------------------+------------+--------------+----------------+----------------+----------------+----------------------------
       | [email protected]      | 657a9f3a3db822a7f1f5050925b26270     |    976563K |   a4634eea55 | true           |             64 | 598f2aa976a4f  | 2019-12-05 10:48:15 +0000
       | [email protected]      | 657a9f3a3db822a7f1f5050925b26270     |    976563K |   a4634eea55 | true           |             64 | 598f2aa976a4f  | 2019-12-05 10:48:15 +0000

NFS рд╕рдХреНрд░рд┐рдп рдХрд░рд╛

рдЖрдореНрд╣реА рд▓рд┐рдУ рдЧреЗрдЯрд╡реЗ 172.26.9.184 рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ NFS рд╕рдХреНрд░рд┐рдп рдХрд░рддреЛ.

рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд╡рд░ nfs-utils рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

sudo yum install nfs-utils

рд╕реВрдЪрдирд╛рдВрдиреБрд╕рд╛рд░, рдЖрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рджреБрд░реБрд╕реНрдд рдХрд░реВ /usr/local/leofs/current/leo_gateway/etc/leo_gateway.conf

protocol = nfs

рд╕рд░реНрд╡реНрд╣рд░ 172.26.9.184 рд╡рд░ rpcbind рдЖрдгрд┐ leofs-gateway рдЪрд╛рд▓рд╡рд╛

sudo service rpcbind start
sudo service leofs-gateway restart

рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЬреЗрдереЗ leo_manager рдЪрд╛рд▓реВ рдЖрд╣реЗ, NFS рд╕рд╛рдареА рдПрдХ рдмрд╛рджрд▓реА рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ NFS рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдХреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рд╛.

leofs-adm add-bucket test 05236
leofs-adm gen-nfs-mnt-key test 05236 ip-╨░╨┤╤А╨╡╤Б-nfs-╨║╨╗╨╕╨╡╨╜╤В╨░

NFS рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдд рдЖрд╣реЗ

sudo mkdir /mnt/leofs
## for Linux - "sudo mount -t nfs -o nolock <host>:/<bucket>/<token> <dir>"
sudo mount -t nfs -o nolock ip-╨░╨┤╤А╨╡╤Б-nfs-╤Б╨╡╤А╨▓╨╡╤А╨░-╤В╨░╨╝-╨│╨┤╨╡-╤Г-╨▓╨░╤Б-╤Г╤Б╤В╨░╨╜╨╛╨▓╨╗╨╡╨╜-gateway:/bucket/access_key_id/╨║╨╗╤О╤З-╨┐╨╛╨╗╤Г╤З╨╡╨╜╨╜╤Л╨╣-╨╛╤В-gen-nfs-mnt-key /mnt/leofs
sudo mount -t nfs -o nolock 172.26.9.184:/test/05236/bb5034f0c740148a346ed663ca0cf5157efb439f /mnt/leofs

NFS рдХреНрд▓рд╛рдпрдВрдЯрджреНрд╡рд╛рд░реЗ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдкрд╣рд╛

рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЛрд░реЗрдЬ рдиреЛрдбрдордзреНрдпреЗ 40GB рдбрд┐рд╕реНрдХ рдЕрд╕рддреЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди (3 рдЪрд╛рд▓реВ рдиреЛрдбреНрд╕, 1 рд╕рдВрд▓рдЧреНрди рдиреЛрдб):

df -hP
Filesystem                                                         Size  Used Avail Use% Mounted on
172.26.9.184:/test/05236/e7298032e78749149dd83a1e366afb328811c95b   60G  3.6G   57G   6% /mnt/leofs

6 рд╕реНрдЯреЛрд░реЗрдЬ рдиреЛрдбреНрд╕рд╕рд╣ LeoFS рдЪреА рд╕реНрдерд╛рдкрдирд╛.

рдЗрдиреНрд╡реНрд╣реЗрдВрдЯрд░реА (рдмрд┐рд▓реНрдбрд░рд╢рд┐рд╡рд╛рдп):

# Please check roles/common/vars/leofs_releases for available versions
[all:vars]
leofs_version=1.4.3
build_temp_path="/tmp/leofs_builder"
build_install_path="/tmp/"
build_branch="master"
source="package"

# nodename of leo_manager_0 and leo_manager_1 are set at group_vars/all
[leo_manager_0]
172.26.9.177

# nodename of leo_manager_0 and leo_manager_1 are set at group_vars/all
[leo_manager_1]
172.26.9.176

[leo_storage]
172.26.9.178 [email protected]
172.26.9.179 [email protected]
172.26.9.181 [email protected]
172.26.9.182 [email protected]
172.26.9.183 [email protected]
172.26.9.185 [email protected]

[leo_gateway]
172.26.9.180 [email protected]
172.26.9.184 [email protected]

[leofs_nodes:children]
leo_manager_0
leo_manager_1
leo_gateway
leo_storage

рдЖрдЙрдЯрдкреБрдЯ leofs-adm рд╕реНрдерд┐рддреА

рдЖрдЙрдЯрдкреБрдЯ leofs-adm рд╕реНрдерд┐рддреА

 [System Confiuration]
-----------------------------------+----------
 Item                              | Value    
-----------------------------------+----------
 Basic/Consistency level
-----------------------------------+----------
                    system version | 1.4.3
                        cluster Id | leofs_1
                             DC Id | dc_1
                    Total replicas | 2
          number of successes of R | 1
          number of successes of W | 1
          number of successes of D | 1
 number of rack-awareness replicas | 0
                         ring size | 2^128
-----------------------------------+----------
 Multi DC replication settings
-----------------------------------+----------
 [mdcr] max number of joinable DCs | 2
 [mdcr] total replicas per a DC    | 1
 [mdcr] number of successes of R   | 1
 [mdcr] number of successes of W   | 1
 [mdcr] number of successes of D   | 1
-----------------------------------+----------
 Manager RING hash
-----------------------------------+----------
                 current ring-hash | d8ff465e
                previous ring-hash | d8ff465e
-----------------------------------+----------

 [State of Node(s)]
-------+----------------------+--------------+---------+----------------+----------------+----------------------------
 type  |         node         |    state     | rack id |  current ring  |   prev ring    |          updated at         
-------+----------------------+--------------+---------+----------------+----------------+----------------------------
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:29 +0000
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:29 +0000
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:30 +0000
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:29 +0000
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:29 +0000
  S    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:29 +0000
  G    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:31 +0000
  G    | [email protected]      | running      |         | d8ff465e       | d8ff465e       | 2019-12-06 05:18:31 +0000
-------+----------------------+--------------+---------+----------------+----------------+----------------------------

рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЛрд░реЗрдЬ рдиреЛрдбрдордзреНрдпреЗ 40GB рдбрд┐рд╕реНрдХ рдЕрд╕рддреЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди (6 рдЪрд╛рд▓реВ рдиреЛрдб):

df -hP
Filesystem                                                         Size  Used Avail Use% Mounted on
172.26.9.184:/test/05236/e7298032e78749149dd83a1e366afb328811c95b  120G  3.6G  117G   3% /mnt/leofs

рдЬрд░ 5 рд╕реНрдЯреЛрд░реЗрдЬ рдиреЛрдбреНрд╕ рд╡рд╛рдкрд░рд▓реЗ рдЕрд╕рддреАрд▓

[leo_storage]
172.26.9.178 [email protected]
172.26.9.179 [email protected]
172.26.9.181 [email protected]
172.26.9.182 [email protected]
172.26.9.183 [email protected]

df -hP
172.26.9.184:/test/05236/e7298032e78749149dd83a1e366afb328811c95b  100G  3.0G   97G   3% /mnt/leofs

рдиреЛрдВрджреА

рд▓реЙрдЧ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд /usr/local/leofs/current/*/log

рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреЕрдиреЗрд▓: SDS рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░ FS

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛