Bambang Sumitra
2020-Dec-25 14:46 UTC
[Gluster-users] Add more capacity to existing gulsterfs replicate
Hi Strahil and Olaf, Thank you for your suggestion, i have read the manual send by Olaf, and mounted additional disk on both server with this command command sequence executed on 10.1.1.60 and 10.1.1.61: fdisk /dev/sdc mkfs.xfs -i size=512 /dev/sdc1 mkdir /usr/local/mariadb/columnstore/gluster2 /dev/sdc1 /usr/local/mariadb/columnstore/gluster2 xfs defaults 1 2 ( add to /etc/fstab) mkdir /usr/local/mariadb/columnstore/gluster2/brick3 mkdir /usr/local/mariadb/columnstore/gluster2/brick4 now i have created brick3 and brick4 on mount point /usr/local/mariadb/columnstore/gluster2 my brick configuration is a bit different, new disk mounted on /usr/local/mariadb/columnstore/gluster2 and created two directory for brick, brick3 and brick4. hope this configuration is fine because this is production server, i just want to make sure the command i am going to execute is correct plan to execute this command as suggested in previous email : command for dbroot1 volume gluster volume add-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster2/brick3 gluster volume add-brick dbroot1 10.1.1.61:/usr/local/mariadb/columnstore/gluster2/brick3 gluster volume status dbroot1 <to check status> gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 start gluster volume remove-brick dbroot1 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 start gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 status <to check status> gluster volume remove-brick dbroot1 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 status <to check status> gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 commit gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 commit command for dbroot2 volume gluster volume add-brick dbroot2 10.1.1.60:/usr/local/mariadb/columnstore/gluster2/brick4 gluster volume add-brick dbroot2 10.1.1.61:/usr/local/mariadb/columnstore/gluster2/brick4 gluster volume status dbroot2 <to check status> gluster volume remove-brick dbroot2 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick2 start gluster volume remove-brick dbroot2 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick2 start gluster volume remove-brick dbroot2 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick2 status <to check status> gluster volume remove-brick dbroot2 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick2 status <to check status> gluster volume remove-brick dbroot2 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick2 commit gluster volume remove-brick dbroot2 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick2 commit The above commands need to execute on one server only? for example in 10.1.1.60, or need to execute on both server (10.1.1.60 and 10.1.1.61)? Thank you Bambang Sumitra On Fri, Dec 25, 2020 at 2:37 PM Strahil Nikolov <hunter86_bg at yahoo.com> wrote:> > Hi Bambang, > > you don't need to bring the application down as long as you use bigger or same size disks for the new storage. > > Merry Christmas to all who celebrate the holiday! > > The most convinient would be to: > 1. Prepare the new disks as per https://docs.gluster.org/en/latest/Install-Guide/Configure/ (Partition the disk) > Note: You have to do it on both nodes.If you don't use SELINUX, skip the "context" mount option. I'm usually mounting with: > > rw,noatime,context=system_u:object_r:glusterd_brick_t:s0 > > WARNING: it is strongly advised to create a directory in the mountpoint that you will use as a brick! > > 2. Add the 2 new bricks (brick = mount point) to the volume: > gluster volume add-brick dbroot1Gluster 10.1.1.60:</full/path/to/new/mountpoint> 10.1.1.61:</full/path/to/new/mountpoint> > > 3. Next verify the volue status > gluster volume status dbroot1Gluster > > 4. Rebalance the volume (only if you plan to keep all disks in Gluster) > gluster volume rebalance dbroot1Gluster start > > Note: that some of the data might remain on the old disks as we haven't used the "force" keyword > > You can repeat with "force" if you wish (once the old rebalance is over): > gluster volume rebalance dbroot1Gluster status > gluster volume rebalance dbroot1Gluster start force > > 5. Remove the old bricks (if you decide to do it , you can skip the rebalance) > gluster volume remove-brick dbroot1Gluster 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1 start > > To get the status of the data migration use: > gluster volume remove-brick dbroot1Gluster 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1 status > > Once it's all migrated , go to the bricks themselves (/usr/local/mariadb...) and verify that there are no files left > > > gluster volume remove-brick dbroot1Gluster 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1 commit > > Note: If the volume was pure replica (without the second set of bricks) , you would get a warning that you need to use "force". In your case "commit" should be enough > > > > Verify status of the volume and voil? . > > > > > > Best Regards, > Strahil Nikolov > > > > > > > > > > ? ?????, 25 ???????? 2020 ?., 00:46:04 ???????+2, Olaf Buitelaar <olaf.buitelaar at gmail.com> ??????: > > > > > > Hi, > > please see; https://docs.gluster.org/en/latest/Administrator-Guide/Managing-Volumes/ > > Gluster offers online expansion of the volume you can add bricks and/or nodes without taking mariadb offline if you want. > > just use the; gluster volume add-brick [vol] [bricks] (bricks must be added according your replication count, in your case 2) > or use; gluster volume replace-brick [vol] [brick] to replace a single brick > > Best Olaf > > Op do 24 dec. 2020 om 23:35 schreef Bambang Sumitra <bambang.sumitra at gmail.com>: > > Hi, > > > > I have small datawarehouse using mariadb columnstore setup as 2 instance server with glusterfs as storage backend, i follow setup from this guide https://mariadb.com/kb/en/installing-and-configuring-a-multi-server-columnstore-system-11x > > > > Now our server almost running out of space, i have attached new disk to both server and plan to add more storage capacity to the glusterfs volume and remove old brick (if possible) > > > > Questions : > > Can i do this step : > > 1. stop mariadb > > 2. stop glusterfs > > 3. mount new disk to /mnt/newdisk > > 4. copy data from old brick to to /mnt/newdisk > > 5. unmount brick > > 6. mount new disk to /usr/local/mariadb/columnstore/gluster (existing glusterfs mount) > > > > or is there any easy and better way to add capacity? i dont mine to keep or remove old brick > > > > Thank you, > > > > command output from host 10.1.1.60 > > root at mDWDB01:~# gluster volume statusStatus of volume: dbroot1Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1 49152 0 Y 1541Brick 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1 49152 0 Y 1499Self-heal Daemon on localhost N/A N/A Y 1425Self-heal Daemon on 10.1.1.61 N/A N/A Y 1367Task Status of Volume dbroot1------------------------------------------------------------------------------There are no active volume tasksStatus of volume: dbroot2Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick2 49153 0 Y 1550Brick 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick2 49153 0 Y 1508Self-heal Daemon on localhost N/A N/A Y 1425Self-heal Daemon on 10.1.1.61 N/A N/A Y 1367Task Status of Volume dbroot2------------------------------------------------------------------------------There are no active volume tasksmis at mDWDB01:~$ sudo gluster volume info[sudo] password for mis:Volume Name: dbroot1Type: ReplicateVolume ID: 22814201-3fae-4904-b0b7-d6e1716365ecStatus: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1Brick2: 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1Options Reconfigured:performance.client-io-threads: offnfs.disable: ontransport.address-family: inetVolume Name: dbroot2Type: ReplicateVolume ID: 6443b073-754d-440b-89e9-49c085114f46Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick2Brick2: 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick2Options Reconfigured:performance.client-io-threads: offnfs.disable: ontransport.address-family: inetmis at mDWDB01:~$ mount |grep column/dev/sdb1 on /usr/local/mariadb/columnstore/gluster type xfs (rw,relatime,attr2,inode64,noquota)10.1.1.60:/dbroot2 on /usr/local/mariadb/columnstore/data2 type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072) > > > > > > command output from host 10.1.1.61 > > mis at mDWUM01:~$ sudo gluster volume info[sudo] password for mis:Volume Name: dbroot1Type: ReplicateVolume ID: 22814201-3fae-4904-b0b7-d6e1716365ecStatus: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1Brick2: 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1Options Reconfigured:performance.client-io-threads: offnfs.disable: ontransport.address-family: inetVolume Name: dbroot2Type: ReplicateVolume ID: 6443b073-754d-440b-89e9-49c085114f46Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick2Brick2: 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick2Options Reconfigured:performance.client-io-threads: offnfs.disable: ontransport.address-family: inetmis at mDWUM01:~$ sudo gluster volume statusStatus of volume: dbroot1Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick1 49152 0 Y 1541Brick 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick1 49152 0 Y 1499Self-heal Daemon on localhost N/A N/A Y 1367Self-heal Daemon on mDWDB01 N/A N/A Y 1425Task Status of Volume dbroot1------------------------------------------------------------------------------There are no active volume tasksStatus of volume: dbroot2Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick 10.1.1.60:/usr/local/mariadb/columnstore/gluster/brick2 49153 0 Y 1550Brick 10.1.1.61:/usr/local/mariadb/columnstore/gluster/brick2 49153 0 Y 1508Self-heal Daemon on localhost N/A N/A Y 1367Self-heal Daemon on mDWDB01 N/A N/A Y 1425Task Status of Volume dbroot2------------------------------------------------------------------------------There are no active volume tasksmis at mDWUM01:~$ mount |grep column/dev/sdb1 on /usr/local/mariadb/columnstore/gluster type xfs (rw,relatime,attr2,inode64,noquota)10.1.1.61:/dbroot1 on /usr/local/mariadb/columnstore/data1 type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)mis at mDWUM01:~$ > > > > > > > > > > > > ________ > > > > > > > > Community Meeting Calendar: > > > > Schedule - > > Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC > > Bridge: https://meet.google.com/cpu-eiue-hvk > > Gluster-users mailing list > > Gluster-users at gluster.org > > https://lists.gluster.org/mailman/listinfo/gluster-users > > > ________ > > > > Community Meeting Calendar: > > Schedule - > Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC > Bridge: https://meet.google.com/cpu-eiue-hvk > Gluster-users mailing list > Gluster-users at gluster.org > https://lists.gluster.org/mailman/listinfo/gluster-users
Strahil Nikolov
2020-Dec-25 17:40 UTC
[Gluster-users] Add more capacity to existing gulsterfs replicate
Hi Bambang,> /dev/sdc1 /usr/local/mariadb/columnstore/gluster2 xfs defaults 1 2 ( > add to /etc/fstab)Add 'noatime' or 'relatime' in order to reduce additional I/O that is used to update access time for the files on the bricks themselves. Also, you can use 'inode64' as a mount option.> command for dbroot1 volume > gluster volume add-brick dbroot1 > 10.1.1.60:/usr/local/mariadb/columnstore/gluster2/brick3 > gluster volume add-brick dbroot1 > 10.1.1.61:/usr/local/mariadb/columnstore/gluster2/brick3You need to add the bricks in replica set (which means 'replica 2' -> 2 bricks at a time). So it should be like: gluster volume add-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster2/brick3 10.1.1.61:/usr/local/mariadb/columnstore/gluster2/brick3> gluster volume status dbroot1 <to check status> > gluster volume remove-brick dbroot1 > 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 start > gluster volume remove-brick dbroot1 > 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 startRemoval of bricks is also done in replica sets (which means 'replica 2' -> 2 bricks at a time). So it should be: gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 start> gluster volume remove-brick dbroot1 > 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 status <to > check status> > gluster volume remove-brick dbroot1 > 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 status <to > check status>Status should be checked with the same command used for start: gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 status> gluster volume remove-brick dbroot1 > 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 commit > gluster volume remove-brick dbroot1 > 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 commitSame for commit: gluster volume remove-brick dbroot1 10.1.1.60:/usr/local/mariadb/columnstore/gluster1/brick1 10.1.1.61:/usr/local/mariadb/columnstore/gluster1/brick1 commit>Repeat for dbroot2 just like for dbroot1.> > The above commands need to execute on one server only? for example in > 10.1.1.60, or need to execute on both server (10.1.1.60 and > 10.1.1.61)?Yes, any node in the cluster. P.S.: If you which , you can leave the old disks and just do a rebalance :) Happy hollidays to all! Best Regards, Strahil Nikolov