Thank you for your response!  With the right magic word "geo-replication",
I was able to find a howto that appears to be what I need to get started.

As to the documentation, some more use-case docs would be helpful.  I also
find myself struggling to understand it at a level to feel comfortable
admining it.  For example, I followed a howto to get my current gluster
stuff running, but just barely, and I still don't truely understand the
components or how to make them work.  My system is 3 node ovirt cluster
with gluster bricks located on the same nodes (and node 3 is the arbitrar
apparently).  I was trying to set up gluster to ride on its own network
instead of sharing the ovirt main network.  Unfortunately, I never could
get that to work, and now that it is in production, I don't have the
slightest on where to look to cause gluster to use a different network
interface already configured and up on the servers.  I'm not even sure I
know what tools to use at the command line level to ensure gluster is
healthy, and should something happen, I'd probably have to post panicked
e-mails here....

I also am not sure I understand gluster well enough to architect a system
under new assumptions.  My current configuration was always intended to be
a "phase 1" to get my cluster online and thus start and grow my business.
However, my current storage is very limited.  So, what should my target be
for a "better" cluster?  Single server, or dual?

If I grow to the point where I have multiple clusters at different offices
(connected by fiber I own), how should I architect the storage then such
that VMs can be moved between clusters, and my clusters 'back each other
up"?  I could use geo-replication, but is that the best/proper way?  If I
build dedicated servers, do I need more than one gluster storage server per
location?

This is a lot I just threw out there...These questions have all passed
through my head, but I haven't found enough details to answer them myself.
I'm slowly growing in a few areas; this geo-replication configuration will
be my next growth.  I would like to move my gluster to another network, and
I think I found some of the files where relevant configs are stored, but
not enough detail to feel comfortable without breaking what I have.  I
realized that most systems I've set up, the docs are a bit less
"recipie"-ish and have more explanation interspersed with the commands, and
intermediate checks (with explanations) to check your work as you go.
These are extremely valuable to me.

For example, if my initial configuration instructions had a paragraph about
the network architecture, different settings (eg, gluster-gluster node sync
vs management interface that ovirt uses vs data access for clients), and
then walks through configuring each one, then showed the command line
instructions to check that was working correctly before moving on to the
next stage, that would help me understand what I've done, and be more
likely to maintain it.  It also makes other docs more understandable given
a deeper knowledge of what I've already done.

Its possible that the instructions I used may have been poorer than typical
for the project, but my googling didn't turn up something that allowed me
to figure it out before I posted my original e-mail.

Thanks for your help!

--Jim

On Tue, Apr 25, 2017 at 10:02 AM, Sahina Bose <sab...@redhat.com> wrote:

>
>
> On Tue, Apr 25, 2017 at 9:18 PM, Jim Kusznir <j...@palousetech.com> wrote:
>
>> So with arbiter, I actually only have two copies of data...Does arbiter
>> have at least checksum or something to detect corruption of a copy? (like
>> old RAID-4 disk configuration)?
>>
>
> Yes, the arbiter brick stores metadata information about the files to
> decide the good copy of data stored on the replicas in case of conflict.
>
>
>>
>> Ok...Related question:  Is there a way to set up an offsite gluster
>> storage server to mirror the contents of my main server?  As "fire"
>> insurance basically?  (eventually, I'd like to have an "offsite" DR
>> cluster, but I don't have the resources or scale yet for that).
>>
>> What I'd like to do is place a basic storage server somewhere else and
>> have it sync any gluster data changes on a regular basis, and be usable to
>> repopulate storage should I loose all of my current cluster (eg, a building
>> fire or theft).
>>
>
> Yes, the geo-replication feature can help with that. There's a remote data
> sync feature introduced for gluster storage domains, that helps with this.
> You can set this up such that data from your storage domain is regularly
> synced to a remote gluster volume, while ensuring data consistency. The
> remote gluster volume does not have to a replica 3.
>
>
>>
>> I find gluster has amazing power from what I hear, but I have a hard time
>> finding documentation at "the right level" to be useful.  I've found some
>> very basic introductory guide, then some very advanced guides that require
>> extensive knowledge of gluster already.  Something in the middle to explain
>> some of these questions (like arbitrar and migration strategies,
>> geo-replication, etc; and how to deploy them) are absent (or at least, i
>> haven't found them yet).  I still feel like I'm using something I don't
>> understand, and the only avenue I have to learn more is to ask questions
>> here, as the docs aren't at an accessible level.
>>
>
> Thanks for the feedback. Are you looking at documentation on a use-case
> basis?
>
>
>>
>> Thanks!
>> --Jim
>>
>> On Mon, Apr 3, 2017 at 10:34 PM, Sahina Bose <sab...@redhat.com> wrote:
>>
>>>
>>>
>>> On Sat, Apr 1, 2017 at 10:32 PM, Jim Kusznir <j...@palousetech.com>
>>> wrote:
>>>
>>>> Thank you!
>>>>
>>>> Here's the output of gluster volume info:
>>>> [root@ovirt1 ~]# gluster volume info
>>>>
>>>> Volume Name: data
>>>> Type: Replicate
>>>> Volume ID: e670c488-ac16-4dd1-8bd3-e43b2e42cc59
>>>> Status: Started
>>>> Number of Bricks: 1 x (2 + 1) = 3
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: ovirt1.nwfiber.com:/gluster/brick2/data
>>>> Brick2: ovirt2.nwfiber.com:/gluster/brick2/data
>>>> Brick3: ovirt3.nwfiber.com:/gluster/brick2/data (arbiter)
>>>> Options Reconfigured:
>>>> performance.strict-o-direct: on
>>>> nfs.disable: on
>>>> user.cifs: off
>>>> network.ping-timeout: 30
>>>> cluster.shd-max-threads: 6
>>>> cluster.shd-wait-qlength: 10000
>>>> cluster.locking-scheme: granular
>>>> cluster.data-self-heal-algorithm: full
>>>> performance.low-prio-threads: 32
>>>> features.shard-block-size: 512MB
>>>> features.shard: on
>>>> storage.owner-gid: 36
>>>> storage.owner-uid: 36
>>>> cluster.server-quorum-type: server
>>>> cluster.quorum-type: auto
>>>> network.remote-dio: enable
>>>> cluster.eager-lock: enable
>>>> performance.stat-prefetch: off
>>>> performance.io-cache: off
>>>> performance.read-ahead: off
>>>> performance.quick-read: off
>>>> performance.readdir-ahead: on
>>>> server.allow-insecure: on
>>>>
>>>> Volume Name: engine
>>>> Type: Replicate
>>>> Volume ID: 87ad86b9-d88b-457e-ba21-5d3173c612de
>>>> Status: Started
>>>> Number of Bricks: 1 x (2 + 1) = 3
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: ovirt1.nwfiber.com:/gluster/brick1/engine
>>>> Brick2: ovirt2.nwfiber.com:/gluster/brick1/engine
>>>> Brick3: ovirt3.nwfiber.com:/gluster/brick1/engine (arbiter)
>>>> Options Reconfigured:
>>>> performance.readdir-ahead: on
>>>> performance.quick-read: off
>>>> performance.read-ahead: off
>>>> performance.io-cache: off
>>>> performance.stat-prefetch: off
>>>> cluster.eager-lock: enable
>>>> network.remote-dio: off
>>>> cluster.quorum-type: auto
>>>> cluster.server-quorum-type: server
>>>> storage.owner-uid: 36
>>>> storage.owner-gid: 36
>>>> features.shard: on
>>>> features.shard-block-size: 512MB
>>>> performance.low-prio-threads: 32
>>>> cluster.data-self-heal-algorithm: full
>>>> cluster.locking-scheme: granular
>>>> cluster.shd-wait-qlength: 10000
>>>> cluster.shd-max-threads: 6
>>>> network.ping-timeout: 30
>>>> user.cifs: off
>>>> nfs.disable: on
>>>> performance.strict-o-direct: on
>>>>
>>>> Volume Name: export
>>>> Type: Replicate
>>>> Volume ID: 04ee58c7-2ba1-454f-be99-26ac75a352b4
>>>> Status: Stopped
>>>> Number of Bricks: 1 x (2 + 1) = 3
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: ovirt1.nwfiber.com:/gluster/brick3/export
>>>> Brick2: ovirt2.nwfiber.com:/gluster/brick3/export
>>>> Brick3: ovirt3.nwfiber.com:/gluster/brick3/export (arbiter)
>>>> Options Reconfigured:
>>>> performance.readdir-ahead: on
>>>> performance.quick-read: off
>>>> performance.read-ahead: off
>>>> performance.io-cache: off
>>>> performance.stat-prefetch: off
>>>> cluster.eager-lock: enable
>>>> network.remote-dio: off
>>>> cluster.quorum-type: auto
>>>> cluster.server-quorum-type: server
>>>> storage.owner-uid: 36
>>>> storage.owner-gid: 36
>>>> features.shard: on
>>>> features.shard-block-size: 512MB
>>>> performance.low-prio-threads: 32
>>>> cluster.data-self-heal-algorithm: full
>>>> cluster.locking-scheme: granular
>>>> cluster.shd-wait-qlength: 10000
>>>> cluster.shd-max-threads: 6
>>>> network.ping-timeout: 30
>>>> user.cifs: off
>>>> nfs.disable: on
>>>> performance.strict-o-direct: on
>>>>
>>>> Volume Name: iso
>>>> Type: Replicate
>>>> Volume ID: b1ba15f5-0f0f-4411-89d0-595179f02b92
>>>> Status: Started
>>>> Number of Bricks: 1 x (2 + 1) = 3
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: ovirt1.nwfiber.com:/gluster/brick4/iso
>>>> Brick2: ovirt2.nwfiber.com:/gluster/brick4/iso
>>>> Brick3: ovirt3.nwfiber.com:/gluster/brick4/iso (arbiter)
>>>> Options Reconfigured:
>>>> performance.readdir-ahead: on
>>>> performance.quick-read: off
>>>> performance.read-ahead: off
>>>> performance.io-cache: off
>>>> performance.stat-prefetch: off
>>>> cluster.eager-lock: enable
>>>> network.remote-dio: off
>>>> cluster.quorum-type: auto
>>>> cluster.server-quorum-type: server
>>>> storage.owner-uid: 36
>>>> storage.owner-gid: 36
>>>> features.shard: on
>>>> features.shard-block-size: 512MB
>>>> performance.low-prio-threads: 32
>>>> cluster.data-self-heal-algorithm: full
>>>> cluster.locking-scheme: granular
>>>> cluster.shd-wait-qlength: 10000
>>>> cluster.shd-max-threads: 6
>>>> network.ping-timeout: 30
>>>> user.cifs: off
>>>> nfs.disable: on
>>>> performance.strict-o-direct: on
>>>>
>>>>
>>>> The node marked as (arbiter) on all of the bricks is the node that is
>>>> not using any of its disk space.
>>>>
>>>
>>> This is by design - the arbiter brick only stores metadata and hence
>>> saves on storage.
>>>
>>>
>>>>
>>>> The engine domain is the volume dedicated for storing the hosted
>>>> engine.  Here's some LVM info:
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/gluster/engine
>>>>   LV Name                engine
>>>>   VG Name                gluster
>>>>   LV UUID                4gZ1TF-a1PX-i1Qx-o4Ix-MjEf-0HD8-esm3wg
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time ovirt1.nwfiber.com, 2016-12-31 14:40:00 -0800
>>>>   LV Status              available
>>>>   # open                 1
>>>>   LV Size                25.00 GiB
>>>>   Current LE             6400
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:2
>>>>
>>>>   --- Logical volume ---
>>>>   LV Name                lvthinpool
>>>>   VG Name                gluster
>>>>   LV UUID                aaNtso-fN1T-ZAkY-kUF2-dlxf-0ap2-JAwSid
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time ovirt1.nwfiber.com, 2016-12-31 14:40:09 -0800
>>>>   LV Pool metadata       lvthinpool_tmeta
>>>>   LV Pool data           lvthinpool_tdata
>>>>   LV Status              available
>>>>   # open                 4
>>>>   LV Size                150.00 GiB
>>>>   Allocated pool data    65.02%
>>>>   Allocated metadata     14.92%
>>>>   Current LE             38400
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:5
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/gluster/data
>>>>   LV Name                data
>>>>   VG Name                gluster
>>>>   LV UUID                NBxLOJ-vp48-GM4I-D9ON-4OcB-hZrh-MrDacn
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time ovirt1.nwfiber.com, 2016-12-31 14:40:11 -0800
>>>>   LV Pool name           lvthinpool
>>>>   LV Status              available
>>>>   # open                 1
>>>>   LV Size                100.00 GiB
>>>>   Mapped size            90.28%
>>>>   Current LE             25600
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:7
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/gluster/export
>>>>   LV Name                export
>>>>   VG Name                gluster
>>>>   LV UUID                bih4nU-1QfI-tE12-ZLp0-fSR5-dlKt-YHkhx8
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time ovirt1.nwfiber.com, 2016-12-31 14:40:20 -0800
>>>>   LV Pool name           lvthinpool
>>>>   LV Status              available
>>>>   # open                 1
>>>>   LV Size                25.00 GiB
>>>>   Mapped size            0.12%
>>>>   Current LE             6400
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:8
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/gluster/iso
>>>>   LV Name                iso
>>>>   VG Name                gluster
>>>>   LV UUID                l8l1JU-ViD3-IFiZ-TucN-tGPE-Toqc-Q3R6uX
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time ovirt1.nwfiber.com, 2016-12-31 14:40:29 -0800
>>>>   LV Pool name           lvthinpool
>>>>   LV Status              available
>>>>   # open                 1
>>>>   LV Size                25.00 GiB
>>>>   Mapped size            28.86%
>>>>   Current LE             6400
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:9
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/centos_ovirt/swap
>>>>   LV Name                swap
>>>>   VG Name                centos_ovirt
>>>>   LV UUID                PcVQ11-hQ9U-9KZT-QPuM-HwT6-8o49-2hzNkQ
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time localhost, 2016-12-31 13:56:36 -0800
>>>>   LV Status              available
>>>>   # open                 2
>>>>   LV Size                16.00 GiB
>>>>   Current LE             4096
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:1
>>>>
>>>>   --- Logical volume ---
>>>>   LV Path                /dev/centos_ovirt/root
>>>>   LV Name                root
>>>>   VG Name                centos_ovirt
>>>>   LV UUID                g2h2fn-sF0r-Peos-hAE1-WEo9-WENO-MlO3ly
>>>>   LV Write Access        read/write
>>>>   LV Creation host, time localhost, 2016-12-31 13:56:36 -0800
>>>>   LV Status              available
>>>>   # open                 1
>>>>   LV Size                20.00 GiB
>>>>   Current LE             5120
>>>>   Segments               1
>>>>   Allocation             inherit
>>>>   Read ahead sectors     auto
>>>>   - currently set to     256
>>>>   Block device           253:0
>>>>
>>>> ------------
>>>>
>>>> I don't use the export gluster volume, and I've never used
>>>> lvthinpool-type allocations before, so I'm not sure if there's anything
>>>> special there.
>>>>
>>>> I followed the setup instructions from an ovirt contributed
>>>> documentation that I can't find now that talked about how to install ovirt
>>>> with gluster on a 3-node cluster.
>>>>
>>>> Thank you for your assistance!
>>>> --Jim
>>>>
>>>> On Thu, Mar 30, 2017 at 1:27 AM, Sahina Bose <sab...@redhat.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Mar 30, 2017 at 1:23 PM, Liron Aravot <lara...@redhat.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Jim, please see inline
>>>>>>
>>>>>> On Thu, Mar 30, 2017 at 4:08 AM, Jim Kusznir <j...@palousetech.com>
>>>>>> wrote:
>>>>>>
>>>>>>> hello:
>>>>>>>
>>>>>>> I've been running my ovirt Version 4.0.5.5-1.el7.centos cluster for
>>>>>>> a while now, and am now revisiting some aspects of it for ensuring that 
>>>>>>> I
>>>>>>> have good reliability.
>>>>>>>
>>>>>>> My cluster is a 3 node cluster, with gluster nodes running on each
>>>>>>> node.  After running my cluster a bit, I'm realizing I didn't do a very
>>>>>>> optimal job of allocating the space on my disk to the different gluster
>>>>>>> mount points.  Fortunately, they were created with LVM, so I'm hoping 
>>>>>>> that
>>>>>>> I can resize them without much trouble.
>>>>>>>
>>>>>>> I have a domain for iso, domain for export, and domain for storage,
>>>>>>> all thin provisioned; then a domain for the engine, not thin 
>>>>>>> provisioned.
>>>>>>> I'd like to expand the storage domain, and possibly shrink the engine
>>>>>>> domain and make that space also available to the main storage domain.  
>>>>>>> Is
>>>>>>> it as simple as expanding the LVM partition, or are there more steps
>>>>>>> involved?  Do I need to take the node offline?
>>>>>>>
>>>>>>
>>>>>> I didn't understand completely that part - what is the difference
>>>>>> between the domain for storage and the domain for engine you mentioned?
>>>>>>
>>>>>
>>>>> I think the domain for engine is the one storing Hosted Engine data.
>>>>> You should be able to expand your underlying LVM partition without
>>>>> having to take the node offline
>>>>>
>>>>>
>>>>>>
>>>>>>> second, I've noticed that the first two nodes seem to have a full
>>>>>>> copy of the data (the disks are in use), but the 3rd node appears to 
>>>>>>> not be
>>>>>>> using any of its storage space...It is participating in the gluster
>>>>>>> cluster, though.
>>>>>>>
>>>>>>
>>>>> Is the volume created as replica 3? If so, fully copy of the data
>>>>> should be present on all 3 nodes. Please provide the output of "gluster
>>>>> volume info"
>>>>>
>>>>>
>>>>>>> Third, currently gluster shares the same network as the VM
>>>>>>> networks.  I'd like to put it on its own network.  I'm not sure how to 
>>>>>>> do
>>>>>>> this, as when I tried to do it at install time, I never got the cluster 
>>>>>>> to
>>>>>>> come online; I had to make them share the same network to make that 
>>>>>>> work.
>>>>>>>
>>>>>>
>>>>> While creating the bricks the network intended for gluster should have
>>>>> been used to identify the brick in hostname:brick-directory. Changing this
>>>>> at a later point is a bit more involved. Please check online or on
>>>>> gluster-users on changing IP address associated with brick.
>>>>>
>>>>>
>>>>>>
>>>>>> I'm adding Sahina who may shed some light on the gluster question,
>>>>>> I'd try on the gluster mailing list as well.
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Ovirt questions:
>>>>>>> I've noticed that recently, I don't appear to be getting software
>>>>>>> updates anymore.  I used to get update available notifications on my 
>>>>>>> nodes
>>>>>>> every few days; I haven't seen one for a couple weeks now.  is something
>>>>>>> wrong?
>>>>>>>
>>>>>>> I have a windows 10 x64 VM.  I get a warning that my VM type does
>>>>>>> not match the installed OS.  All works fine, but I've quadrouple-checked
>>>>>>> that it does match.  Is this a known bug?
>>>>>>>
>>>>>>
>>>>>> Arik, any info on that?
>>>>>>
>>>>>>>
>>>>>>> I have a UPS that all three nodes and the networking are on.  It is
>>>>>>> a USB UPS.  How should I best integrate monitoring in?  I could put a
>>>>>>> raspberry pi up and then run NUT or similar on it, but is there a 
>>>>>>> "better"
>>>>>>> way with oVirt?
>>>>>>>
>>>>>>> Thanks!
>>>>>>> --Jim
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users@ovirt.org
>>>>>>> http://lists.ovirt.org/mailman/listinfo/users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

Reply via email to