• Sales: 1-800-961-2888
  • Support: 1-800-961-4454

Rackspace Cloud Backup - Install the Agent


Getting Started with Rackspace Cloud Backup - Part 1

Install the Agent

If you have a Managed Cloud account, you may already have the agent installed on your server. You know you have the agent when you see your Cloud Server(s) listed under Systems in the Rackspace Cloud Backup control panel. If not, we can install it for you. Check with your account manager and jump ahead to How to Create a Backup.

Other users should begin with the instructions below.

On this page, you find out how to

Install the Agent on Apt-based Sytems, like Ubuntu and Debian

First, you must SSH into your server and run the below commands consecutively on a user with sudo or superuser privileges.

Step 1 - Get the Agent:

sudo sh -c 'wget -q "http://agentrepo.drivesrvr.com/debian/agentrepo.key" -O- | apt-key add -'

Step 2 - Add the Resource:

sudo sh -c 'echo "deb [arch=amd64] http://agentrepo.drivesrvr.com/debian/ serveragent main" > /etc/apt/sources.list.d/driveclient.list'

Step 3 - Install the Agent:

sudo apt-get update; sudo apt-get install driveclient

Step 4 - Configure the bootstrap:

You need your username and API key to complete this step. If you need assistance finding your API key, please refer to this article in our Knowledge Center.

Tip: This step asks you to confirm that you want to overwrite your config file. Answer yes.

sudo /usr/local/bin/driveclient --configure

Step 5 - Start the Agent:

sudo service driveclient start

Step 6 - Set the Agent to start on boot:

sudo update-rc.d driveclient defaults

Install the Agent on RPM-based Systems, like CentOS, Fedora, and Red Hat

First, you must SSH into your server and run the below commands consecutively on a user with sudo or superuser privileges.

Step 1 - Confirm directory

Go into your file directory and confirm that the path /etc/yum.repos.d path exits. If not, create it:

sudo mkdir -p /etc/yum.repos.d

Step 2 - Get the RPM:

sudo wget -O /etc/yum.repos.d/drivesrvr.repo "http://agentrepo.drivesrvr.com/redhat/drivesrvr.repo"

Step 3 - Install the RPM:

sudo yum -y install driveclient

Step 4 - Configure the bootstrap:

You need your username and API key to complete this step. If you need assistance finding your API key, please refer to this article in our Knowledge Center.

sudo /usr/local/bin/driveclient --configure

Step 5 - Start the Agent:

sudo service driveclient start

Step 6 - Set the Agent to start on boot:

sudo chkconfig driveclient on

Install the Agent for Arch, Gentoo, and Suse Systems

For Arch, Gentoo, and Suse Linux systems, download the tarball at the link below. Then, SSH into your server and run the below commands consecutively on a user with sudo or superuser privileges.

Note: The tarball has the most up-to-date instructions, so if the tarball instructions differ from those below, follow the tarball.

Step 1 - Get the Tarball

wget http://agentrepo.drivesrvr.com/tar/driveclient-latest.tar.bz2

Step 2 - Extract the files

tar -xvjf driveclient-latest.tar.bz2

Step 3 - Change to the directory

Enter the directory created by extracting the files, for example:

cd driveclient-1*

Step 4 - Create directories and copy files

sudo cp driveclient /usr/local/bin/
sudo chown root:root /usr/local/bin/driveclient
sudo chmod 700 /usr/local/bin/driveclient
sudo mkdir -m 700 /etc/driveclient sudo cp cacert.pem /etc/driveclient

Step 5 - Configure the Agent

You need your username and API key to complete this step. If you need assistance finding your API key, please refer to this article in our Knowledge Center.

Tip: This step asks you to confirm that you want to overwrite your config file. Answer yes.

sudo /usr/local/bin/driveclient --configure

Step 6 - Start the Agent

sudo /usr/local/bin/driveclient --daemon

Example init/startup scripts are included in the tarball.

Install the Agent on a Windows Systems

If you need to find out which encryption type of Windows machine you have (32- or 64-bit), navigate to your Windows Server's Control Panel and Select "System".

Step 1 - Download the Agent

Note: For these agents, you may Right-click the links below and save them directly to your Server.

Step 2 - Run the Agent

You need your API Key when you install the Agent. If you need assistance finding your API key, please refer to this article in our Knowledge Center.

There are 3 types of setups: New Install, Update Install, or GUI Install. They take the following non-quoted parameters:

  • New Install:
    driveclient-setup /S /Type=[New|Install|Update] /Username=username /ApiKey=apiKeyValue /ApiHostName=hostname [/Url=UpdateUrl]
    
  • Update:
    driveclient-setup /S [/Type=Install|/Type=Update]
    
  • GUI: Double-click the executable from Step 1.

Notes:

  1. For non-interactive installation and automation the /S parameter provides a silent install.
  2. If the install type is not 'new' (/Type=New) then the credentials are not overwritten.
  3. For all but updates /ApiHostName can be provided including GUI installations. If it is not its value defaults to api.drivesrvr.com.
  4. The “Install” and “Update” types are provided for backward compatibility.

Step 3 - Test Windows Install or Update:

Test Your Windows Install

Installation should do the following:

  1. Create ”%programfiles%\driveclient” path
  2. Place files in the Program Files driveclient directory:
    c:\>dir "%programfiles%\driveclient" /a-d
     Volume in drive C is OS
     Volume Serial Number is EE4C-78FC
    
     Directory of C:\Program Files\driveclient
    
    10/05/2011  12:24 PM         5,749,760 driveclient.exe
    03/01/2011  05:41 PM         1,693,696 icudt42.dll
    03/01/2011  05:39 PM         1,289,216 icuuc42.dll
    10/05/2011  01:37 PM           647,630 install.log
    10/05/2011  01:37 PM            58,384 uninst.exe
                   5 File(s)      9,438,686 bytes
    
  3. Create ”%programdata%\driveclient” path
  4. Place bootstrap.json in the program data driveclient path, which looks like the following:
    {
      "ApiHostName" : "api.driveclient.com",
      "Https" : true,
      "IsRegistered" : false,
      "Username" : "[yourusername]",
      "Password" : "[myownveryverylongpasswordthatnoonecouldeverpossiblycrack]"
    }
    

    The parameters provided with /type=install should be seen in the bootstrap.json file.

  5. Create a driveclientsvc service:
    c:\>sc query DriveClientSvc
    
    SERVICE_NAME: DriveClientSvc
            TYPE               : 10  WIN32_OWN_PROCESS
            STATE              : 1  STOPPED
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x0
    
  6. You should see a “driveclient.exe” entry Control Panel>Programs and Features.

Test Your Windows Update

Running driveclient-setup-latest.exe will change any updated files in “program files\driveclient”.
This is the same as running setup with no parameters.

c:\>dir "%programfiles%\driveclient\driveclient.exe"

 Volume in drive C is OS
 Volume Serial Number is EE4C-78FC

 Directory of C:\Program Files\driveclient

10/05/2011  12:24 PM         5,749,760 driveclient.exe
               1 File(s)      5,749,760 bytes
               0 Dir(s)  449,822,932,992 bytes free

Troubleshooting

What do the backup statuses "Skipped", "Missed", "Errored", and "Failed," mean? (See below for instructions on troubleshooting these issues.)

  • Skipped: The backup job was skipped because there was already a backup job queued. A single backup job can only be queued once.
  • Missed: The backup job was missed because the agent did not respond. The agent was likely offline.
  • Errored: This means there was an error during the backup. It did run, but it needs to be investigated.
  • Failed: Something seriously went wrong. The backup did not run; review the logs.

How do I troubleshoot the Skipped, Missed, Errored, and Failed statuses?

  • Skipped: This is likely because the frequency of the backup job was set too high. Consider reducing the frequency of the job, reducing the amount of data, or maybe this is the initial job and the subsequent jobs will finish faster.
  • Missed: First, check to make sure the agent is running on the server. If not, start it; then, check the logs to determine why it failed. An agent should never go offline by itself. Either a software exception occurred or the agent was manually terminated.
  • Errored: Look in the logs on the server. The agent stores all the logs in one location. Review the logs line by line; it should be pretty obvious what happened. If not, a ticket can be raised in the SME group and we'll help identify the problem.
  • Failed: As with Errored status, check the logs on the server. A failed status is severe.

Logs

If you need to read the logs of your agent, you may find them at the below locations.

  • Linux - /var/log
  • Windows - %ProgramData%/Driveclient

Uninstall the Agent from Linux

To uninstall the agent, stop the agent and uninstall the package.

CentOS/Red Hat

sudo service driveclient stop
sudo yum remove driveclient

Ubuntu

sudo /etc/init.d/driveclient stop
sudo apt-get remove driveclient

Uninstall Agent from Windows

  1. Run %programfiles%\driveclient\uninst.exe

You should now see:

  • The path %programfiles%\driveclient should contain a single file: install.log
c:\>dir "%programfiles%\driveclient" /a-d
 Volume in drive C is OS
 Volume Serial Number is EE4C-78FC

 Directory of C:\Program Files\driveclient

10/05/2011  01:29 PM           607,013 install.log
               1 File(s)        607,013 bytes
               2 Dir(s)  449,805,914,112 bytes free
  • The path %programdata%\driveclient should not exist.
c:\>dir "%programdata%\driveclient"
 Volume in drive C is OS
 Volume Serial Number is EE4C-78FC

 Directory of C:\ProgramData

File Not Found
  • There should be no “driveclient.exe” entry in Control Panel>Programs and Features.
  • There should be no “driveclientsvc” service installed.
  - There should be no scheduled tasks to "check for driveclient update".
c:\>sc query driveclientsvc
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:

The specified service does not exist as an installed service.


© 2011-2013 Rackspace US, Inc.

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License


See license specifics and DISCLAIMER

55 Comments

Which ports must be open on the firewall (iptables) to allow for a good communication with the driveclient?

Thanks.

The agent only makes outgoing connections and does not accept incoming connections. The default setup should have the agent using https for its connections, so the port it would go out on would be 443.

Please can you advise which IPs/Range is required as the destination for a firewall allow rule.

Thanks


Thank you for your post. The RSE servers the agent connects to are 50.57.23.234-238:443. The domain is: https://rse.drivesrvr.com

The Cloud File servers use domain: https://snet-storage101.ord1.clouddrive.com

**** Please be advised that the IP address are volatile. Filters on IPs could cause connection problem in the future should they change. ***

I hope this helps you.

The default install doesn't make the agent start on boot.
To make that happen on Ubuntu do :
update-rc.d driveclient defaults
It will configure all necessary symlinks to the init.d script...

You should precise that on your tutorial !

One final post-install step on my Ubuntu 12.04 Image:

sudo update-rc.d driveclient defaults

Thank-you for helping us make our Knowledge Center instructions page and/or our installer better. The issue with the Ubuntu restart-on-boot has been added to our to-do list and you should see it soon.

The location of the agent for 32-bit windows systems is:
http://agentrepo.drivesrvr.com/windows32/driveclient-setup-latest.exe

The location of the agent for 64-bit windows systems is:
http://agentrepo.drivesrvr.com/windows/driveclient-setup-latest.exe

The instructions for Arch, Gentoo, and Suse Linux for the website are simple:

Download the following tarball:
http://agentrepo.drivesrvr.com/tar/driveclient-latest.tar.bz2

The tarball contains a README file with instructions.

We have plans to support the platforms with official packages and this page will be updated with the instructions soon.

you may not have it.

If you see the error "sudo: driveclient: command not found" when attempting step 4 for RPM based systems, you should switch to root to perform the step.

Enter "sudo su -", then enter. Then execute the command and it should find it. "sudo driveclient --configure".

It appears that the default CentOS 6.3 image does not include /usr/local/bin in the root PATH variable. You'll need to modify root's ~/.bash_profile, line 10 to appear as follows:

PATH=$PATH:/usr/local/bin:$HOME/bin

Then log out of root and log back in.

Greetings,

I'm working with a customers Next Gen Windows 2008 server. I've successfully installed the newest client, but I've found that just opening HTTPS does not allow for connectivity between the client and the Cloud Backup Portal in Reach. I have to use a network policy that allows the cloud server to use all ports out to the web in order to get this to work. Which port does the client make calls out on?

Hi Matthew,
Hi Matthew,
Hi Matthew,
We always communicate on 443.

BTW, Our Fanatical Supporters monitor support tickets and will get your questions into the queue for an answer much quicker than here. (Access support from the Control Panel->Support Menu)?

We've created a puppet module for Rackspace CloudBackup if anyone is interested:

https://github.com/avatarnewyork/puppet-cloudbackup

Also available via the Puppet Forge here:

http://forge.puppetlabs.com/avatarnewyork/cloudbackup

Feel free to fork and contribute

Norton 360 Antivirus considers this file unsafe, Details:

Updated: February 15, 2012 3:15:47 PM
Type: Other
Risk Impact: High
Systems Affected: Windows XP, Windows Vista, Windows NT, Windows Server 2003, Windows 2000


Behavior
WS.Reputation.1 is a detection for files that have a low reputation score based on analyzing data from Symantec’s community of users and therefore are likely to be security risks. Detections of this type are based on Symantec’s reputation-based security technology. Because this detection is based on a reputation score, it does not represent a specific class of threat like adware or spyware, but instead applies to all threat categories.

The reputation-based system uses "the wisdom of crowds" (Symantec’s tens of millions of end users) connected to cloud-based intelligence to compute a reputation score for an application, and in the process identify malicious software in an entirely new way beyond traditional signatures and behavior-based detection techniques.

Hi Dale,
I've logged this with Development to investigate a resolution. Have you logged a support ticket (from the Control Panel->Support) so that our Fanatical Support can get this into the queue and follow up with you?

For the windows side, the instructions are lacking info. Following the steps creates a service that doesn't start (access denied).

Hi Greg,
Have you logged a support ticket for the Access Denied issue (from the Control Panel->Support Menu)? Our Fanatical Supporters monitor that queue and can help walk you through the issue.

Fixed this!
The default first rule that goes into iptables is (recommended on many sites, including the RS help files):
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

You need to allow established and related connections for eth1 for driveclient to work.

Rackspace Support, I found an error in the CentOS documentation above for the install and configuration of the agent.

On step 4, following the install of the agent, when entering the command "sudo driveclient --configure" I received an error stating command not found. I ignored this step thinking it wasn't required but my server did not show up on the list in the backup area.

I removed and reinstalled the agent and used "driveclient --configure". This configured the bootstrap and now everything is working correctly. It might be worth updating this for any CentOS users who come across this problem. Cheers, Tom.

Thanks Tom. We'll run through those steps and see if we can reproduce the problem and determine why it occurs. A note mentioning that the step is required sounds like it would be in order as well.

Hi,

I get the following errors, while trying to configure the client:

driveclient: /lib/libc.so.6: version `GLIBC_2.9' not found (required by driveclient)
driveclient: /lib/libc.so.6: version `GLIBC_2.10' not found (required by driveclient)
driveclient: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by driveclient)

We're running a Debian 5.0 ...

Thx,
Ron

Hi Ron. Wanted to note we removed your repeat posts. Comments are held for moderation before being posted publicly because we've been having a spam problem lately. Sorry about the confusion - we hadn't been deleting any posts as they came in, they were just sitting in queue waiting for attention.

On the error, it looks like the driveclient requires a newer version of glibc than what shipped with Debian 5. I'll see if we can't get a list of the requirements added to this article, but it looks like you'd need to use Debian 6 (or do some manual upgrading in Debian 5) so you can meet the glibc requirement.

can someone from Rackspace clarify what the license of the driveclient software itself is, and if sources are available anywhere?
there was an earlier question on this topic (http://www.rackspace.com/knowledge_center/comment/40862#comment-40862) but it did not get a real answer.

Rackspace considers the driveclient software to be part of the Cloud Backup service, and that it therefore falls under the auspices of our terms of service for Cloud products rather than a license of its own:

http://www.rackspace.com/cloud/legal/

We have not made the source available. If you require more information let me know and I'll see what else I can find out.

Hello,
I wanted to know if it's normal that the driveclient process is permanently running and using 2% of the CPU on my centos box? I don't really mind because it's really small usage but I don't understand why the client is constantly using CPU even when I'm not logged in on the Rackspace cloud management site or when backup are not performed.

Hi R3miz,
Yes, it is currently as-expected for the driveclient to stay somewhat active even when backups are not running or you are not actually using Rackspace Cloud Backup. It polls for scheduled backups and generally keeps itself "alive" even when there is no user interaction.

However we are actively analyzing how to decrease the "at-rest" CPU utilization altogether. But do not have a release date for when this enhancement will be in Rackspace Cloud Backup.

Thanks for your feedback,
June

Can you install Rackspace Cloud Backup on Non-Rackspace Cloud Servers? Can I take backups of my laptop and back it up to Rackspace Cloud?
Thanks!
Mike

Unfortunately Rackspace Cloud Backup does not work with non-Rackspace servers at this time. We may support that as an option in the future.

In the meantime you might consider a service like Jungle Disk (which can automate backups to Cloud Files).

https://www.jungledisk.com/

Hey,

The top line in `top` is:

819 root 20 0 630m 3496 1480 S 2.3 0.7 170:55.14 driveclient

What do I do to turn this off? My server was working a few hours ago and now I can't get it to free up it's memory.

To stop the agent you should be able to run:

sudo service driveclient stop

If you still see the driveclient in top after that then the process could be hung. The first column in top shows the process ID, which you could use with the kill command to try and force a stop. For the example you list, the kill command would be "sudo kill 819". If that STILL doesn't do it then you can go nuclear and include the -9 option, as in "sudo kill -9 819".

Note that automated backups won't be performed while the agent is inactive. You can try starting it back up after stopping it (to see if it consumes fewer resources) with:

sudo service driveclient start

If you run into this issue often, I'd suggest creating a ticket for support via the control panel so they can help troubleshoot why the agent is being a resource hog.

On Centos 5, I see errors trying to start the agent, and set it to start on boot. I was able to get through the 4th step to configure driveclient with my username and access key, but after that I can't seem to complete the process.

I'm logged in as root.

# service driveclient start
bash: service: command not found

# sudo chkconfig driveclient on
sudo: chkconfig: command not found

#chkconfig driveclient on
bash: chkconfig: command not found

# sudo driveclient start
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid

# driveclient start
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted

In the online interface, the server I installed the agent on is shown as "Offline" - as a consequence, I can't set up a backup to completion.

It sounds like /sbin isn't in your $PATH variable, for starters. You may also need to set your locale.

To temporarily add to your path, run:

export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin

Try running chkconfig to see if that works. If it does, then edit your .bash_profile:

nano ~/.bash_profile

And add the "export" line above to the file, then save it. That way you'll have that in your path next time you log in.

On the locale, you can run the following to set the locale to the US:

sudo /usr/bin/localedef -i en_US -f UTF-8 en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Once you do that try starting driveclient to see if it gives the same error. If it works, then you'll want to make that change permanent. Run:

sudo nano /etc/sysconfig/i18n

Then add these lines (or replace similar lines that may already be there):

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Hopefully those steps do the trick. If not, let me know what other errors you see.

Jered - Thanks, this resolved the issue. It might be useful to add this information to the documentation above, in case others run into similar difficulty. I didn't modify these parameters, so they were still set as they were when the server was originally spun up from your image.

Thanks Jered, your suggestions resolved the issue. Now the only remaining problem is this web application, the one I'm using to write this comment! Horribly slow, and very prone to throw errors when submitting comments. It takes me multiple tries to get these messages through.

Glad to hear that straightened the problem out, Nando. I'll look at getting that info into the article (and we can use a separate article on setting the locale anyway).

Sorry to hear you had timeout problems posting a comment, though. I've notified the maintainers of the site's backend, and hopefully they'll track the problem down and fix it. Thanks for letting us know about it.

GPG error: http://agentrepo.drivesrvr.com serveragent Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 38077CC8F6A5034C

I'm also noticing some CPU overhead on my server as well. We have a fairly busy server, so to have a process constantly running on a 1GB server with 5% to 7% CPU overhead is a little frustrating when it's only intended for backup purposes (and is only scheduled to back up at 4AM and it's 10AM right now). I don't think we've ever had this before with previous generation servers. Will this CPU consumption be 24hrs a day or am I just catching it at the wrong times?

Hello Patrick,
There is an update for the agent which you should install. The instructions are found here: http://www.rackspace.com/knowledge_center/article/update-the-rackspace-cloud-backup-agent

We have found that the agent will idle at around 2%, and work is currently being done to lower it further. The idle usage may increase, however, if the user has trace-level logging turned on and is logged into the control panel.

Ok, I just went through the update process. I must already have the latest version, since when I tried to install it from the mentioned repo, it said "Package driveclient-1.05.005848-0.x86_64 already installed and latest version". I'm monitoring top and I'm noticing that the CPU load on this process will very rarely drop below 5.5% at any given moment.

Also, with your comment on trace-level logging, are you referring to general logging on the server itself (i.e. operations on the server causing HDD i/o)? I wish that didn't affect the idle CPU load from the driveclient, as it's only configured to backup once per week at 4AM.

The trace logging is the agent-specific logging operations that can be controlled via the control panel. The agent normally only logs messages with WARN and ERROR priority, but can be configured to log all the way down to TRACE statements.

Is FreeBSD supported?

Hi Peter,
We currently don't support FreeBSD. But it is in our plans for future development although no target date has been set.

Thanks for your inquiry.
June

On the centos instructions when configuring the backup the command -- "sudo driveclient --configure" should be without the "sudo" then you will be asked to enter your Rackspace username and API key. Just a heads up

Thanks Colin. Looks like it's a path variable issue - when using sudo it doesn't include /usr/local/bin in the path. We'll add the absolute path to the command in the article.

Hi,

I've created a Chef cookbook for the installation of the Cloud Backup Agent:
https://github.com/djoos/chef-rackspacecloudbackup

Check it out via the Opscode Chef community:
http://community.opscode.com/cookbooks/rackspacecloudbackup

Feel free to fork and contribute to the cookbook, bon appétit ;-)

P.S. @Racker: don't hesitate to contact me to move the cookbook maintenance across so it can sit nicely next to https://github.com/racker/cookbook-cloudmonitoring as cookbook-cloudbackup...

Hi team,

I get errors when installing the backup agent.

sudo /usr/local/bin/driveclient --configure

gives the following errors

/usr/local/bin/driveclient: /lib/libc.so.6: version `GLIBC_2.9' not found (required by /usr/local/bin/driveclient)
/usr/local/bin/driveclient: /lib/libc.so.6: version `GLIBC_2.10' not found (required by /usr/local/bin/driveclient)
/usr/local/bin/driveclient: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /usr/local/bin/driveclient)
/usr/local/bin/driveclient: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/local/bin/driveclient)
/usr/local/bin/driveclient: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.2' not found (required by /usr/local/bin/driveclient)

I am running

Description: Ubuntu 8.04.4 LTS
Release: 8.04
Codename: hardy

Any suggestions?

Also,

sudo service driveclient start

suggested in your documentation does not work. Should this be

sudo /etc/init.d/driveclient start

under Ubuntu?

Unfortunately the driveclient requires glibc 2.9, and that version isn't included in Hardy's repositories (they started supporting 2.9 with Jaunty, I think, Ubuntu 9.04). That means driveclient isn't supported on your system unless you upgrade it to a newer version of Ubuntu.

The "sudo service driveclient start" command would only work after the package has successfully installed.

Thanks Jered,

I was hoping to back up before upgrading to the new version of Ubuntu. Does not look like this is possible. I have saved an image of the slice instead, and requested the upgrade. I will then have another go at installing the backup client.

Thank you for your assistance.

Pages


Add new comment